Postgres 在 DML 触发器中查找哪些表被修改

Postgres find which tables are modified in DML trigger

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

使用 information_schema.triggers 和 pg_trigger tables 我能够单独找到触发器列表和触发事件 tables。

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

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

您可以对该列中的 table 名称执行不区分大小写的搜索,但您将得出误报(如果使用动态 SQL,则有几个误报底片也是)。