mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-10-04 03:16:50 +02:00
Update rule examples
This commit is contained in:
parent
d27a566583
commit
592b69056d
@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_rule.sgml,v 1.11 2000/04/07 17:23:11 momjian Exp $
|
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_rule.sgml,v 1.12 2000/04/07 17:35:08 momjian Exp $
|
||||||
Postgres documentation
|
Postgres documentation
|
||||||
-->
|
-->
|
||||||
|
|
||||||
@ -171,12 +171,14 @@ CREATE
|
|||||||
two rules have the same semantics:
|
two rules have the same semantics:
|
||||||
<programlisting>
|
<programlisting>
|
||||||
ON UPDATE TO emp.salary WHERE emp.name = "Joe"
|
ON UPDATE TO emp.salary WHERE emp.name = "Joe"
|
||||||
DO UPDATE emp ( ... ) WHERE ...
|
DO
|
||||||
|
UPDATE emp ( ... ) WHERE ...
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
ON UPDATE TO emp-1.salary WHERE emp-2.name = "Joe"
|
ON UPDATE TO emp-1.salary WHERE emp-2.name = "Joe"
|
||||||
DO UPDATE emp-3 ( ... ) WHERE ...
|
DO
|
||||||
|
UPDATE emp-3 ( ... ) WHERE ...
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
|
||||||
Each rule can have the optional tag INSTEAD.
|
Each rule can have the optional tag INSTEAD.
|
||||||
@ -203,13 +205,15 @@ ON UPDATE TO emp-1.salary WHERE emp-2.name = "Joe"
|
|||||||
<programlisting>
|
<programlisting>
|
||||||
CREATE RULE bad_rule_combination_1 AS
|
CREATE RULE bad_rule_combination_1 AS
|
||||||
ON SELECT TO emp
|
ON SELECT TO emp
|
||||||
DO INSTEAD SELECT TO toyemp;
|
DO INSTEAD
|
||||||
|
SELECT TO toyemp;
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
|
||||||
<programlisting>
|
<programlisting>
|
||||||
CREATE RULE bad_rule_combination_2 AS
|
CREATE RULE bad_rule_combination_2 AS
|
||||||
ON SELECT TO toyemp
|
ON SELECT TO toyemp
|
||||||
DO INSTEAD SELECT TO emp;
|
DO INSTEAD
|
||||||
|
SELECT TO emp;
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
This attempt to retrieve from EMP will cause
|
This attempt to retrieve from EMP will cause
|
||||||
@ -257,8 +261,10 @@ SELECT * FROM emp;
|
|||||||
<programlisting>
|
<programlisting>
|
||||||
CREATE RULE example_1 AS
|
CREATE RULE example_1 AS
|
||||||
ON UPDATE emp.salary WHERE current.name = "Joe"
|
ON UPDATE emp.salary WHERE current.name = "Joe"
|
||||||
DO UPDATE emp (salary = new.salary)
|
DO
|
||||||
WHERE emp.name = "Sam";
|
UPDATE emp
|
||||||
|
SET salary = new.salary
|
||||||
|
WHERE emp.name = "Sam";
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
|
||||||
At the time Joe receives a salary adjustment, the event
|
At the time Joe receives a salary adjustment, the event
|
||||||
@ -275,8 +281,9 @@ CREATE RULE example_2 AS
|
|||||||
ON SELECT TO EMP.salary
|
ON SELECT TO EMP.salary
|
||||||
WHERE current.name = "Bill"
|
WHERE current.name = "Bill"
|
||||||
DO INSTEAD
|
DO INSTEAD
|
||||||
SELECT (emp.salary) from emp
|
SELECT emp.salary
|
||||||
WHERE emp.name = "Joe";
|
FROM emp
|
||||||
|
WHERE emp.name = "Joe";
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
@ -285,8 +292,9 @@ CREATE RULE example_2 AS
|
|||||||
the current user):
|
the current user):
|
||||||
<programlisting>
|
<programlisting>
|
||||||
CREATE RULE example_3 AS
|
CREATE RULE example_3 AS
|
||||||
ON SELECT TO emp.salary
|
ON
|
||||||
WHERE current.dept = "shoe" AND current_user = "Joe"
|
SELECT TO emp.salary
|
||||||
|
WHERE current.dept = "shoe" AND current_user = "Joe"
|
||||||
DO INSTEAD NOTHING;
|
DO INSTEAD NOTHING;
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</para>
|
</para>
|
||||||
@ -298,7 +306,8 @@ CREATE toyemp(name = char16, salary = int4);
|
|||||||
CREATE RULE example_4 AS
|
CREATE RULE example_4 AS
|
||||||
ON SELECT TO toyemp
|
ON SELECT TO toyemp
|
||||||
DO INSTEAD
|
DO INSTEAD
|
||||||
SELECT (emp.name, emp.salary) FROM emp
|
SELECT (emp.name, emp.salary)
|
||||||
|
FROM emp
|
||||||
WHERE emp.dept = "toy";
|
WHERE emp.dept = "toy";
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</para>
|
</para>
|
||||||
@ -307,7 +316,8 @@ CREATE RULE example_4 AS
|
|||||||
<programlisting>
|
<programlisting>
|
||||||
CREATE RULE example_5 AS
|
CREATE RULE example_5 AS
|
||||||
ON INERT TO emp WHERE new.salary > 5000
|
ON INERT TO emp WHERE new.salary > 5000
|
||||||
DO UPDATE NEWSET salary = 5000;
|
DO
|
||||||
|
UPDATE NEWSET salary = 5000;
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</para>
|
</para>
|
||||||
</refsect1>
|
</refsect1>
|
||||||
|
Loading…
Reference in New Issue
Block a user