2016-12-05 77 views
1

我希望有人能幫忙。 目前我正在使用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'?.. –

回答

2

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

單引號,而不是雙引號。 –

相關問題