PostgreSQL 18 中文参考文档(未翻译部分保留英文)🌐 切换到英文原版 →

38.4. 表重写事件触发器示例 #

利用 table_rewrite 事件在生产环境中禁止未经授权的整表物理重写:

CREATE OR REPLACE FUNCTION forbid_table_rewrite()
RETURNS event_trigger AS $$
BEGIN
    RAISE EXCEPTION '生产环境禁止执行可能引发整表物理重写的 DDL 操作: %', TG_TAG;
END;
$$ LANGUAGE plpgsql;

CREATE EVENT TRIGGER block_rewrites
ON table_rewrite
EXECUTE FUNCTION forbid_table_rewrite();