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