如何判断 if/when Postgres 触发器正在执行
How to tell if/when Postgres triggers are executing
我在 legacy codebase/database 工作。该代码以前依赖于触发器,但一度停止使用它们——逻辑被移至主 (Nodejs) 代码库中,并且删除了 CREATE TRIGGER
语句。尽管如此,触发器仍然存在于数据库中。我可以看到他们搜索 pg_trigger
table:
据我所知,它们仍然处于启用状态,这很奇怪,因为据我所知,它们不应该做任何事情。如果它们没有被使用,我想删除它们。我的问题:
- 有没有办法知道最后一次执行触发器的时间?
- 有没有其他方法可以确定这些触发器是否还在做任何事情?
没有办法做到这一点,除非您修改触发器以在某处记录执行。
也许 session_replication_role
设置为 replica
。然后普通触发器 (tgenabled = 'O'
) 不会触发。
我在 legacy codebase/database 工作。该代码以前依赖于触发器,但一度停止使用它们——逻辑被移至主 (Nodejs) 代码库中,并且删除了 CREATE TRIGGER
语句。尽管如此,触发器仍然存在于数据库中。我可以看到他们搜索 pg_trigger
table:
据我所知,它们仍然处于启用状态,这很奇怪,因为据我所知,它们不应该做任何事情。如果它们没有被使用,我想删除它们。我的问题:
- 有没有办法知道最后一次执行触发器的时间?
- 有没有其他方法可以确定这些触发器是否还在做任何事情?
没有办法做到这一点,除非您修改触发器以在某处记录执行。
也许 session_replication_role
设置为 replica
。然后普通触发器 (tgenabled = 'O'
) 不会触发。