利用 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();