"Tonal" ...
23.06.2011 13:18, Vlad Khorsun пишет:
Почему бы не ввести специальную конструкцию, для вызова из блока
самого себя?
Почему бы не пользоваться рекурсивными CTE ?
Как с помощью CTE удалить ветку (если не стоит каскадного удаления)?
Или, например скопировать ветку?
Ещё у меня возникала задача объединения двух веток. Причём в случае
совпадения некоторого атрибута у дочерних их тоже нужно объединять...
А если ещё учесть что к каждому узлу подвешена дополнительная информация
из других таблиц...
Пиши процедуры для таких задач. По-хорошему советую :)
Что-то я не догоняю как это всё без рекурсии на чистом СТЕ делать.
Буду благодарен за примеры. :)
delete from ... where id in (with recursive...)
delete from ... where exists (with recursive...)
Или, раз уж речь о exec block, то
for with recursive ... do delete ...;
--
Хорсун Влад