'on delete' rule: bug or feature...
От | Dmitry Tkach |
---|---|
Тема | 'on delete' rule: bug or feature... |
Дата | |
Msg-id | 3D666C40.3060908@openratings.com обсуждение исходный текст |
Список | pgsql-bugs |
Hi, everybody! I was wonderring if anyone could help me with this... I have created two tables and a view that joins them together, then I add a rule, that is supposed to delete an entry from both tables, when I am deleting it from the view. That does not work for some reason - it only deletes the row from one of the tables, but not from the other one... Looks like a bug to me... Or am I doing something wrong here? Here is the SQL (I have removed the prompts, and commented out the responses, so that you can just cut and paste this inpsql): -- First, create two tables, the view, and the 'on delete' rule: create table x (xx int); -- CREATE create table y (yy int); -- CREATE create view xy as select * from x, y where xx=yy; -- CREATE create rule xy_delete as on delete to xy do instead ( delete from x where xx=old.xx; delete from y where yy=old.yy; ); -- CREATE -- Insert a row into each table: insert into x values (1); -- INSERT 812084785 1 insert into y values (1); -- INSERT 812084786 1 -- Did it work? select * from xy; -- xx | yy -- ----+---- -- 1 | 1 -- (1 row) -- Great! Now delete it: delete from xy where xx=1; -- DELETE 0 select * from xy; -- (No rows) -- Looks good so far - it's gone from the view select * from x; -- (No rows) -- Gone from x too - still OK, BUT: select * from y; -- yy -- ---- -- 1 -- (1 row) OOPS! How come it is still here??? Any ideas? Your help will be greatly appreciated! Thanks a lot! Dima
В списке pgsql-bugs по дате отправления: