PG触发器查询

1.查询所有触发器

|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| SELECT ``tgname AS 触发器名称, ``relname AS 表名, ``proname AS 触发函数名, ``tgenabled AS 是否启用, ``pg_get_triggerdef(t.oid) AS 完整定义SQL FROM pg_trigger t JOIN pg_class c ON t.tgrelid ``= c.oid JOIN pg_proc p ON t.tgfoid ``= p.oid WHERE NOT t.tgisinternal ``-``- 过滤系统内部触发器 ORDER BY relname, tgname; trigger_imas_asset_info | imas_asset_info | cascade_audit_function | O | CREATE TRIGGER trigger_imas_asset_info AFTER INSERT OR DELETE OR UPDATE ON public.imas_asset_info FOR EACH ROW EXECUTE FUNCTION cascade_audit_function() |

2.查询单表触发器

|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| SELECT ``tgname AS 触发器名称, ``pg_get_triggerdef(oid) AS 触发器完整定义 FROM pg_trigger WHERE tgrelid ``= 'imas_asset_info'``::regclass ``AND NOT tgisinternal; |

  1. 查询触发器源码

|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| SELECT ``proname AS 函数名, ``pg_get_functiondef(oid) AS 函数源码 FROM pg_proc WHERE proname LIKE ``'%trigger_imas_asset_info%' -``- 过滤触发器函数 ORDER BY proname; |

  1. 查询触发器+触发时间+触发事件

|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| SELECT ``c.relname AS 表名, ``t.tgname AS 触发器名, ``CASE WHEN t.tgtype & ``4 > ``0 THEN ``'BEFORE' ``WHEN t.tgtype & ``8 > ``0 THEN ``'AFTER' ``WHEN t.tgtype & ``16 > ``0 THEN ``'INSTEAD OF' END AS 触发时机, ``array_to_string( ``array( ``SELECT unnest( ``CASE WHEN t.tgtype & ``1 > ``0 THEN ARRAY[``'INSERT'``] ELSE ARRAY[] END || ``CASE WHEN t.tgtype & ``2 > ``0 THEN ARRAY[``'DELETE'``] ELSE ARRAY[] END || ``CASE WHEN t.tgtype & ``32 > ``0 THEN ARRAY[``'UPDATE'``] ELSE ARRAY[] END ``) ``), ``', ' ``) AS 触发事件, ``p.proname AS 触发函数, ``pg_get_triggerdef(t.oid) AS 完整定义 FROM pg_trigger t JOIN pg_class c ON t.tgrelid ``= c.oid JOIN pg_proc p ON t.tgfoid ``= p.oid WHERE NOT t.tgisinternal ORDER BY c.relname, t.tgname; |

  1. 触发器操作

|-------------------------------------------------------------------------------------------------------------------------------------|
| 禁用触发器 ALTER TABLE 表名 DISABLE TRIGGER 触发器名; 启用触发器 ALTER TABLE 表名 ENABLE TRIGGER 触发器名; 删除触发器 DROP TRIGGER IF EXISTS 触发器名 ON 表名; |

相关推荐
程序员清风17 小时前
CSV、Excel 与数据库数据读取实践
数据库·oracle·excel
GEO实战经验分享17 小时前
GEO技术与工具全景:从监测仪表盘到Schema的实战指南
数据库
一个天蝎座的程序猿17 小时前
IoTDB集群扩容:从慌乱到从容的经验分享
数据库
小小龙学IT18 小时前
Python SQLAlchemy 2.0 深度解析:从 Core 到 ORM 的数据访问双引擎
开发语言·数据库·python
DongQiShanRen19 小时前
裁决台账双向互校(上):名册与实物的第一道对账
java·linux·运维·数据库·人工智能·自然语言处理·数据挖掘
ShineWinsu19 小时前
对于Redis:AOF持久化的解析
linux·数据库·redis·缓存·面试·持久化·aof
仍然.19 小时前
Redis---集群
数据库·redis·缓存
Allstar_4319 小时前
DV/PV 验证管理:为量产放行提供完整证据链——全星研发项目管理 APQP 软件系统汽车电子行业专业级研发项目管理平台
数据库·汽车
小范的技术工坊19 小时前
向量数据库解决了什么问题?
数据库
小蒜学长19 小时前
在线保险服务与管理平台的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端·服务平台·在线保险