On Sat, 28 Sep 2002 13:41:04 -0400 (EDT), Bruce Momjian
<[EMAIL PROTECTED]> wrote:
>Does anyone else have a common rule that would return incorrect results
>using the proposed rules?
CREATE VIEW twotables AS
SELECT ... FROM table1 INNER JOIN table2 ON ... ;
CREATE RULE twotables_insert AS -- INSERT rule
ON INSERT TO twotables
DO INSTEAD (
INSERT INTO table1 VALUES (new.pk, new.col1);
INSERT INTO table2 VALUES (new.pk, new.col2)
);
CREATE RULE twotables_update AS -- UPDATE rule
ON UPDATE TO twotables
DO INSTEAD (
UPDATE table1 SET col1 = new.col1 WHERE pk = old.pk;
UPDATE table2 SET col2 = new.col2 WHERE pk = old.pk
);
CREATE RULE twotables_delete AS -- DELETE rule
ON DELETE TO twotables
DO INSTEAD (
DELETE FROM table1 WHERE pk = old.pk;
DELETE FROM table2 WHERE pk = old.pk
);
CREATE VIEW visible AS
SELECT ... FROM table3
WHERE deleted = 0;
CREATE RULE visible_delete AS -- DELETE rule
ON DELETE TO visible
DO INSTEAD
UPDATE table3
SET deleted = 1
WHERE pk = old.pk;
Servus
Manfred
---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?
http://www.postgresql.org/users-lounge/docs/faq.html