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
