PostgreSQL 觸發(fā)器函數(shù)

2021-09-06 10:24 更新

當函數(shù)被用作觸發(fā)器時,字典TD包含觸發(fā)器相關的值:

TD["event"]

包含字符串型的事件:INSERT、UPDATE、DELETE或者TRUNCATE

TD["when"]

包含BEFORE、AFTER或者INSTEAD OF之一。

TD["level"]

包含ROW或者STATEMENT。

TD["new"]
TD["old"]

對于行級觸發(fā)器,這些域的一個或者兩個包含相應的觸發(fā)器行,這取決于觸發(fā)器事件是什么。

TD["name"]

包含觸發(fā)器的名稱。

TD["table_name"]

包含該觸發(fā)器發(fā)生其上的表名。

TD["table_schema"]

包含該觸發(fā)器發(fā)生其上的表所屬的模式名。

TD["relid"]

包含該觸發(fā)器發(fā)生其上的表的 OID。

TD["args"]

如果CREATE TRIGGER命令包括參數(shù),它們可以通過TD["args"][0]TD["args"][n -1]使用。

如果TD["when"]BEFORE或者INSTEAD OF并且TD["level"]ROW,可以從 Python 函數(shù)返回None或者 "OK"來表示行沒有被修改。返回"SKIP"可以中止事件,或者在TD["event"]INSERTUPDATE時可以返回"MODIFY"以表示已經(jīng)修改了新行。否則返回值會被忽略。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號