Hi all,
I'm coding a DB and I noticed the following strange thing:
CREATE TABLE a (x integer PRIMARY KEY,y integer);
CREATE TABLE b (x integer REFERENCES a, z integer, PRIMARY KEY (x,y))
CREATE VIEW ab AS
SELECT a.x, a.y, b.z
FROM a,b
WHERE a.x=b.x;
/* this -insert- seems to work */
CREATE RULE ab_ins AS ON INSERT TO ab DO INSTEAD (
INSERT INTO a(x,y) VALUES (new.x, new.y);
INSERT INTO b(x,z) VALUES (new.x, new.z);
);
/* this -delete- does not work */
CREATE RULE ab_del AS ON DELETE TO ab DO INSTEAD (
DELETE FROM b WHERE (x=old.x) AND (y=old.y);
DELETE FROM a WHERE (x=old.x);
);
Anyone has an explanation for this? I'm using PostgreSQL 7.0.3.
Greetings,
Lieven