支援版本:目前 (17) / 16 / 15 / 14 / 13
開發版本:devel
不支援版本:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3

44.5. 觸發器函數 #

當函數被用作觸發器時,字典 TD 包含與觸發器相關的值

TD["event"]

包含事件作為字符串:INSERTUPDATEDELETETRUNCATE

TD["when"]

包含 BEFOREAFTERINSTEAD OF 其中之一。

TD["level"]

包含 ROWSTATEMENT

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

對於 row 等級的觸發器,根據觸發事件,這些欄位中的一個或兩個包含相應的觸發列。

TD["name"]

包含觸發器名稱。

TD["table_name"]

包含觸發器發生所在的資料表名稱。

TD["table_schema"]

包含觸發器發生所在的資料表綱要。

TD["relid"]

包含觸發器發生所在的資料表的 OID。

TD["args"]

如果 CREATE TRIGGER 命令包含參數,它們可在 TD["args"][0]TD["args"][n-1] 中使用。

如果 TD["when"]BEFOREINSTEAD OFTD["level"]ROW,您可以從 Python 函數返回 None"OK" 來表示列未被修改,返回 "SKIP" 來中止事件,或者如果 TD["event"]INSERTUPDATE,您可以返回 "MODIFY" 來表示您已經修改了新的列。否則,返回值會被忽略。

提交更正

如果您在文件中發現任何不正確、與您使用特定功能的經驗不符或需要進一步澄清之處,請使用 此表單 來報告文件問題。