PostgreSQL中是否有像Oracles的“UPDATING,DELETING,INSERTING”函数一样的函数?

问题描述:

我希望有人能帮忙。 目前我正在使用PostgreSQL数据库,但我真的不知道如何解决我的问题。在PLSQL中,触发器中有操作,称为“INSERTING,UPDATING,DELETING”。但是,当涉及到PostgreSQL我baffered ...PostgreSQL中是否有像Oracles的“UPDATING,DELETING,INSERTING”函数一样的函数?

在Oracle我可以这样做:

v_action CHAR(1) := CASE WHEN INSERTING THEN "I" WHEN UPDATING THEN "U" WHEN DELETING THEN "D" END; 
+0

您正在查看'TG_OP'?.. –

https://www.postgresql.org/docs/current/static/plpgsql-trigger.html

TG_OP Data type text; a string of INSERT, UPDATE, DELETE, or TRUNCATE telling for which operation the trigger was fired.

这应该做的伎俩:

v_action := CASE 
    WHEN TG_OP = 'INSERT' THEN 'I' 
    WHEN TG_OP = 'UPDATE' THEN 'U' 
    WHEN TG_OP = 'DELETE' THEN 'D' 
END; 
+0

谢谢,这是我寻找的。但是,当触发器触发时,我得到以下错误:'错误:列'INSERT'不存在' – mortendegn

+0

它在我的触发器中看起来像什么:'v_action CHAR(1):= CASE WHEN TG_OP =“INSERT”THEN“I”当TG_OP =“UPDATE”THEN“U”时TG_OP =“DELETE”THEN“D”END;' – mortendegn

+1

单引号,而不是双引号。 –