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