non non, c'est bien le contraire qui se passe :
si tu essayes le code ci-dessous tu veras:
create table c (idc int primary key, val varchar(20));
insert into c values (1, 'premier');
insert into c values (2, 'second');
select * from c;
create table d (idd int primary key, idc int references c on delete cascade);
insert into d values (10,1);
insert into d values (11,2);
select * from c;
-- on supprime dans d comme d'habitude
delete from d where idd = 10;
select * from c;
select * from d;
-- mais quand on supprime dans c, les enregistrements liés dans d sont
-- supprimés
insert into d values (10,1);
delete from c where idc = 1;
select * from c;
select * from d;