Скажем, у меня есть две таблицы:
create table parent (
number not null,
constraint parent_pk primary key(id),
)
create table child (
id number not null,
parent_id number not null,
constraint child_pk primary key(id),
constraint child_fk1 foreign key(parent_id)
references parent(id)
)
Я слышал о методе удаления снизу вверх. Примерно так:
DELETE FROM child where parent_id IN (SELECT id FROM parent WHERE ...);
DELETE FROM parent WHERE ...;
Я также видел следующую версию:
DELETE FROM child c where exists (SELECT 1 FROM parent p WHERE c.parent_id=p.id AND ...);
DELETE FROM parent WHERE ...;
Существуют также опции «УДАЛИТЬ КАСКАД». Не могли бы вы сравнить производительность упомянутых способов?