| От | Tom Lane |
|---|---|
| Тема | Re: Rule problem |
| Дата | |
| Msg-id | 19317.1023978960@sss.pgh.pa.us обсуждение исходный текст |
| Ответ на | Rule problem (Svenn Helge Grindhaug <svenn@ii.uib.no>) |
| Список | pgsql-sql |
Svenn Helge Grindhaug <svenn@ii.uib.no> writes:
> create rule a_delete as
> on delete to a do
> delete from b where id1 = old.id1;
> create rule c_delete as
> on delete to c do
> delete from a where id1 = (select id1 from b where id2 = old.id2);
The a_delete rule is run before the actual "DELETE FROM a" command,
so by the time the latter runs, the b row is gone, and no match exists.
I'd be inclined to think about doing this with foreign keys (set up
for ON DELETE CASCADE) instead of handmade rules. If you really want
to do it by hand, triggers will probably work better than rules.
regards, tom lane
В списке pgsql-sql по дате отправления:
Сайт использует файлы cookie для корректной работы и повышения удобства. Нажимая кнопку «Принять» или продолжая пользоваться сайтом, вы соглашаетесь на их использование в соответствии с Политикой в отношении обработки cookie ООО «ППГ», в том числе на передачу данных из файлов cookie сторонним статистическим и рекламным службам. Вы можете управлять настройками cookie через параметры вашего браузера