Re: Rule appears not to fire on insert w/ "except" - Mailing list pgsql-general

From Tom Lane
Subject Re: Rule appears not to fire on insert w/ "except"
Date
Msg-id 3886.1132605347@sss.pgh.pa.us
Whole thread Raw
In response to Rule appears not to fire on insert w/ "except"  (Chris Kratz <chris.kratz@vistashare.com>)
Responses Re: Rule appears not to fire on insert w/ "except"  (Chris Kratz <chris.kratz@vistashare.com>)
List pgsql-general
Chris Kratz <chris.kratz@vistashare.com> writes:
> CREATE OR REPLACE RULE debug_rule AS
>     ON INSERT TO test1
>    do INSERT INTO test_que (row_id)
>   VALUES (new.id);

You would be a whole lot better off doing this with a trigger.

> insert into test1
>   select id,data from test2
>   except select id,data from test1;

I believe the problem with this is that the rule re-evaluates the
command to generate the "new" results, and by that point the rows
have already been inserted into test1, thus disappear from the
result of the "except" ...

            regards, tom lane

pgsql-general by date:

Previous
From: Chris Kratz
Date:
Subject: Rule appears not to fire on insert w/ "except"
Next
From: Emi Lu
Date:
Subject: About not to see insertion result "INSERT 0 1"