如何判断 if/when Postgres 触发器正在执行

How to tell if/when Postgres triggers are executing

我在 legacy codebase/database 工作。该代码以前依赖于触发器,但一度停止使用它们——逻辑被移至主 (Nodejs) 代码库中,并且删除了 CREATE TRIGGER 语句。尽管如此,触发器仍然存在于数据库中。我可以看到他们搜索 pg_trigger table:

据我所知,它们仍然处于启用状态,这很奇怪,因为据我所知,它们不应该做任何事情。如果它们没有被使用,我想删除它们。我的问题:

  1. 有没有办法知道最后一次执行触发器的时间?
  2. 有没有其他方法可以确定这些触发器是否还在做任何事情?

没有办法做到这一点,除非您修改触发器以在某处记录执行。

也许 session_replication_role 设置为 replica。然后普通触发器 (tgenabled = 'O') 不会触发。