delete returning

Пгуые123
Дата: 20.02.2007 16:57:44
День добрый!
Помогите, кто может с вопросиком...
Как удалить записи из таблицы с внешним ключем, условия для которой формируются на основе таблицы, чей этот внешний ключ... ((( чет вроде этого..
delete from t_table t
where t.id in (select id from t_table_ext  te
                   where te.summ>1000)
но удалить так естественно не получается, тк в t_table есть внешний ключ на таблицу t_table_ext.
Как делаю сейчас:
for i in (select id from t_table_ext  te
                   where te.summ>1000)
loop
delete from t_table_ext  te
where te.id=i.id;
commit;

delete from t_table t
where t.id=i.id;
commit;
end loop;
естественно, выполняется ужастно долго...
пробывал делать несколько по другому, через execute immediate, генерируя запрос с in.
чет тоже не нравится....
Пробывал делать с returning... тоже получается удалять только по одной строчке... (((
Подскажите, куда смотреть? как быть? Да как вообще люди делают?
alex-ls
Дата: 20.02.2007 16:58:49
on delete cascade
dmidek
Дата: 20.02.2007 17:01:51
Как вариант on delete cascade,
как вариант задание констрейнтов как deferrable ,
установка их в deferred и удаление записей из таблиц в любом порядке.
Ну и естественно без курсоров, в чистом SQL...
Vint
Дата: 20.02.2007 17:02:38
Пгуые123

ON DELETE CASCADE?
orawish
Дата: 20.02.2007 17:09:33
ну или
1) select for update (вместо delete) мастера
2) дилит детальки
3) дилит мастера
alex-ls
Дата: 20.02.2007 17:11:42
кстати а зачем два commit в исходном коде?
Пгуые123
Дата: 20.02.2007 17:16:50
alex-ls
кстати а зачем два commit в исходном коде?

а не надо?
ну в ролл бек сегмент лишний раз записывать не будет..
или не так?
Jannny
Дата: 20.02.2007 17:27:19
Пгуые123
ну в ролл бек сегмент лишний раз записывать не будет..
Бр... :(

Хотя бы то, что у Вас могут появиться несогласованные данные в таблицах - не тревожит? Представьте себе raise после первого коммита...
alex-ls
Дата: 20.02.2007 17:33:10
Пгуые123
alex-ls
кстати а зачем два commit в исходном коде?

а не надо?
ну в ролл бек сегмент лишний раз записывать не будет..
или не так?

читайте Тома Кайта
Пгуые123
Дата: 20.02.2007 22:38:16
alex-ls
on delete cascade

ДА!
Это то, что надо )))
УРА! УРА! УРА!