当前位置:  开发笔记 > 编程语言 > 正文

如何判断PostgreSQL中是否启用了触发器?

如何解决《如何判断PostgreSQL中是否启用了触发器?》经验,为你挑选了2个好方法。

我的googling-fu让我失望了.如何知道PostgreSQL触发器是否被禁用?



1> Rafael..:

这是我使用postresql的第一天,但​​我认为你可以通过pg_trigger系统表检查触发状态:http://www.postgresql.org/docs/current/static/catalog-pg-trigger.html

您需要的列是tgrelidtgenabled.


目前最新的链接:http://www.postgresql.org/docs/current/static/catalog-pg-trigger.html

2> tolgayilmaz..:

下面的SQL将完成这项工作.它显示当前数据库中的所有触发器.

SELECT pg_namespace.nspname, pg_class.relname, pg_trigger.*
FROM pg_trigger
JOIN pg_class ON pg_trigger.tgrelid = pg_class.oid
JOIN pg_namespace ON pg_namespace.oid = pg_class.relnamespace  

如果tgenabled为'D',则触发器被禁用.所有其他值(此处记录)表明它以某种方式启用.

BTW.如果要检查特定表的触发器,则查询会更短:

SELECT * FROM pg_trigger
WHERE tgrelid = 'your_schema.your_table'::regclass

regclass的类型让你从限定的表名到OID(对象ID)的简单方法.

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有