CREATE RULE
是用于定义规则的DDL命令。
CREATE RULE
一直存在于PostgreSQL中。
更改历史
- PostgreSQL 16
ON SELECT
规则不再能够手动创建在表上 (提交 b23cd185)
- PostgreSQL 8.0
ALSO
关键字添加 (提交 943eae92)
- PostgreSQL 7.3
CREATE [ OR REPLACE ] RULE
语法添加 (提交 248c67d7)
示例
CREATE RULE
的示例用法,这里创建了一个规则,该规则导致具有奇数id值的行从 INSERT
操作中删除
postgres=# CREATE RULE foobar AS ON INSERT TO foo WHERE NEW.id % 2 = 1 DO INSTEAD NOTHING; CREATE RULE
尝试插入一系列连续的值会导致目标表如下填充
postgres=# INSERT INTO foo VALUES (1), (2), (3); INSERT 0 1 postgres=# SELECT * FROM foo; id ---- 2 (1 row)
参考文献
- PostgreSQL文档: CREATE RULE