CREATE EVENT TRIGGER 是一个DDL命令,用于定义一个 事件触发器。
CREATE EVENT TRIGGER 在 PostgreSQL 9.3 中添加。
变更历史
- PostgreSQL 11
EXECUTE FUNCTION语法已添加 (commit 3b983c33)
- PostgreSQL 9.3
- 已添加 (initial commit 3855968f)
示例
CREATE EVENT TRIGGER 的基本用法示例
postgres=# CREATE OR REPLACE FUNCTION forbid_table_rewrites()
RETURNS event_trigger
LANGUAGE plpgsql
AS $$
BEGIN
RAISE EXCEPTION 'command % prohibited', tg_tag;
END;
$$;
postgres=# CREATE EVENT TRIGGER forbid_rewrites
ON table_rewrite
EXECUTE FUNCTION forbid_table_rewrites();
CREATE EVENT TRIGGER
postgres=# ALTER TABLE foo ALTER COLUMN id TYPE BIGINT;
ERROR: command ALTER TABLE prohibited
CONTEXT: PL/pgSQL function forbid_table_rewrites() line 3 at RAISE
参考资料
- PostgreSQL文档: CREATE EVENT TRIGGER
