On Sat, 3 Feb 2001, Tom Lane wrote:

> I get
>
> regression=# SELECT * FROM orders;
>  order_id | menu_id | price
> ----------+---------+-------
>         1 |       2 |    -1
> (1 row)
>
> which is the correct result given that rules are executed before the
> original query.  (Which is why you need a trigger for this...)

OK.

I think that Bruce's book is inaccurate then.  In section D.19 (p. 299),
also reproduced on the web at
http://www.postgresql.org/docs/aw_pgsql_book/node490.html, this example is
given:

All new employees must make 5,000 or less:

CREATE RULE example_5 AS
ON INSERT TO emp
WHERE new.salary > 5000 DO
UPDATE emp SET salary = 5000
WHERE emp.oid = new.oid;
-- 
Tod McQuillin


Reply via email to