Synopsis
Use the CREATE RULE
statement to create a rule.
Syntax
create_rule ::= CREATE [ OR REPLACE ] RULE rule_name AS ON rule_event
TO table_name [ WHERE boolean_expression ] DO
[ ALSO | INSTEAD ] { NOTHING
| command
| ( command [ ; ... ] ) }
rule_event ::= SELECT | INSERT | UPDATE | DELETE
command ::= SELECT | INSERT | UPDATE | DELETE | NOTIFY
Semantics
See the semantics of each option in the [PostgreSQL docs][postgresql-docs-create-rule].
Examples
Basic example.
yugabyte=# CREATE TABLE t1(a int4, b int4);
yugabyte=# CREATE TABLE t2(a int4, b int4);
yugabyte=# CREATE RULE t1_to_t2 AS ON INSERT TO t1 DO INSTEAD
INSERT INTO t2 VALUES (new.a, new.b);
yugabyte=# INSERT INTO t1 VALUES (3, 4);
yugabyte=# SELECT * FROM t1;
a | b
---+---
(0 rows)
yugabyte=# SELECT * FROM t2;
a | b
---+---
3 | 4
(1 row)