Postgres 中是否有任何定义的函数可以让您知道什么操作触发了触发器?

Is there any defined function in Postgres that lets you know what action triggers a trigger?

我想在 Postgres 中创建一个触发器来更新日志。我的触发器将在更新、插入或删除完成时触发。

CREATE TRIGGER tr_usuario
    BEFORE INSERT OR DELETE OR UPDATE 
    ON public.usuario
    FOR EACH ROW
    EXECUTE PROCEDURE public.actualizarlog();

由于我的触发器是由这三个操作中的任何一个触发的,我无法具体知道是什么操作触发了触发器,但在我的日志中我也想保存执行的操作。 Postgres 中是否有任何定义的函数让我知道触发触发器的操作?

有一个特殊变量 TG_OP 表示导致触发器触发的操作。它是一个字符串,分别为 INSERTUPDATEDELETETRUNCATE。另见:"42.10.1. Triggers on Data Changes"