CREATE TRIGGER
是用于创建触发器的 DDL 命令。
CREATE TRIGGER
添加于 PostgreSQL 6.2。
更改历史
- PostgreSQL 14
OR REPLACE
语法添加 (提交 92bf7e2d)
- PostgreSQL 11
EXECUTE FUNCTION
语法添加 (提交 0a63f996)
- PostgreSQL 10
REFERENCING { { OLD | NEW } TABLE [ AS ] transition_relation_name }
语法添加 (初始提交 8c48375e)
- PostgreSQL 9.1
CREATE TRIGGER ... INSTEAD OF ...
语法添加 (提交 2ec993a7)
- PostgreSQL 9.0
- PostgreSQL 6.2
- 添加 (提交 502f6f38)
示例
CREATE TRIGGER
的基本用法示例
postgres=# CREATE TABLE foo (id INT); CREATE TABLE postgres=# CREATE FUNCTION foo_trigger() RETURNS TRIGGER LANGUAGE plpgsql AS $$ BEGIN RAISE NOTICE 'executing trigger'; IF TG_OP = 'INSERT' OR TG_OP = 'UPDATE' THEN RETURN NEW; END IF; RETURN OLD; END; $$; CREATE FUNCTION postgres=# CREATE TRIGGER trg_foo_iud_01 AFTER INSERT OR UPDATE OR DELETE ON foo FOR EACH ROW EXECUTE FUNCTION foo_trigger(); CREATE TRIGGER postgres=# INSERT INTO foo VALUES (1); NOTICE: executing trigger INSERT 0 1
参考文献
- PostgreSQL 文档: CREATE TRIGGER