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

Reply via email to