postgresql - Postgres查找DML触发器中修改了哪些表
问题描述
我有数百个跨多个模式的 DML 触发器。他们中的大多数修改了多个表的 DML。
使用 information_schema.triggers 和 pg_trigger 表,我可以单独找到触发器列表和触发器事件表。
是否可以获得每个触发器修改的表列表(触发器目标表)?
解决方案
不,因为触发操作是一个函数,并且函数以纯字符串形式存储在系统目录表的prosrc
列中。pg_proc
您可以对该列中的表名执行不区分大小写的搜索,但您会遇到误报(如果使用动态 SQL,也会出现一些误报)。
推荐阅读
- python - 查找字符串中的特定数字并赋值
- java - 如果在 Android 对话框中选择了相同的选项,如何什么都不做?
- java - Selenium:准备就绪时等待和获取元素
- android - 尽管 ArrayList 引用没有丢失,但 notifyDataSetChanged 没有更新 RecyclerView
- python - 使用 Lambda 函数而不是函数重命名 Pandas 中的列
- flutter - `onGenerateRoute`和`routes`之间的深度区别?
- r - 来自向量列表的数据框
- vb.net - Visual Basic:带前导零的简单计数器
- mysql - Laravel Lumen 查询返回错误的时间戳时间
- javascript - 在 html 画布图表上绘制负面和正面区域