首页 > 解决方案 > Postgres查找DML触发器中修改了哪些表

问题描述

我有数百个跨多个模式的 DML 触发器。他们中的大多数修改了多个表的 DML。

使用 information_schema.triggers 和 pg_trigger 表,我可以单独找到触发器列表和触发器事件表。

是否可以获得每个触发器修改的表列表(触发器目标表)?

标签: postgresqlpostgresql-9.6postgresql-10

解决方案


不,因为触发操作是一个函数,并且函数以纯字符串形式存储在系统目录表的prosrc列中。pg_proc

您可以对该列中的表名执行不区分大小写的搜索,但您会遇到误报(如果使用动态 SQL,也会出现一些误报)。


推荐阅读