pg_get_triggerdef() 是一个系统函数,用于生成重新创建指定触发器所需的 SQL。
pg_get_triggerdef() 添加于 PostgreSQL 7.4。
用法
pg_get_triggerdef (triggeroid[,prettyboolean] ) →text
请注意,返回的文本是从元数据重建的,并非原始 CREATE TRIGGER 命令的原文。
变更历史
- PostgreSQL 9.3
- 输出始终缩进 (commit 62e66640)
- PostgreSQL 7.4
- 新增(提交 3be6367b)
示例
pg_get_triggerdef() 的基本用法示例
postgres=# SELECT pg_get_triggerdef(oid)
FROM pg_trigger
WHERE tgname = 'trg_foo_01';
pg_get_triggerdef
--------------------------------------------------------------------------------------------------
CREATE TRIGGER trg_foo_01 AFTER INSERT ON public.foo FOR EACH ROW EXECUTE FUNCTION foo_trigger()
(1 row)
指定了 pretty 选项时
postgres=# SELECT pg_get_triggerdef(oid, true)
FROM pg_trigger
WHERE tgname = 'trg_foo_01';
pg_get_triggerdef
-------------------------------------------------------------------------------------------
CREATE TRIGGER trg_foo_01 AFTER INSERT ON foo FOR EACH ROW EXECUTE FUNCTION foo_trigger()
(1 row)
参考资料
- PostgreSQL 文档: 系统目录信息函数
