| PostgreSQL 8.0.0 中文文件(轉譯自 PostgreSQL 中國 製作的簡體中文版本) | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 38. PL/Python - 過程語言 | Fast Forward | Next |
當一個函數用做觸發器的時候,字典TD包含與觸發器相關的數值。 觸發器行在TD["new"] 和/或TD["old"] 裡面, 具體情況取決於觸發器事件。TD["event"] 中包含以字串形式出現的事件 (INSERT, UPDATE, DELETE, 或 UNKNOWN)。 TD["when"] 包含 BEFORE, AFTER, 或者 UNKNOWN 之一。 TD["level"] 包含 ROW, STATEMENT, 或者 UNKNOWN 之一。 TD["name"] 包含觸發器名字,而 TD["relid"] 包含觸發器發生的資料表的 OID。 如果 CREATE TRIGGER 包括函數參數, 那麼這些參數可以透過 TD["args"][0] 到 TD["args"][(n -1)] 獲得。
如果觸發器的 TD["when"] 是 BEFORE,那麼您可以從 python 函數返回 None 或者 OK 以資料表示該行沒有修改,返回"SKIP"以退出事件, 或者 "MODIFY" 資料表示您已經修改了該行。