トリガとして関数を使用した場合、TD
辞書にトリガに関連した値が格納されます。
TD["event"]
次のイベントが文字列として格納されます。
INSERT
、UPDATE
、DELETE
、TRUNCATE
TD["when"]
BEFORE
、AFTER
、またはINSTEAD OF
のいずれかが格納されます。
TD["level"]
ROW
またはSTATEMENT
が格納されます。
TD["new"]
TD["old"]
行レベルトリガにおいてトリガイベントに依存して、これらのフィールドの片方または両方に対応するトリガ行が格納されます。
TD["name"]
トリガ名が格納されます。
TD["table_name"]
トリガの発生元のテーブルの名前が格納されます。
TD["table_schema"]
トリガの発生元のテーブルのスキーマが格納されます。
TD["relid"]
トリガの発生元テーブルのOIDが格納されます。
TD["args"]
CREATE TRIGGER
に引数が含まれていた場合、その引数はTD["args"][0]
からTD["args"][
までの範囲で使用することができます。
n
-1]
TD["when"]
がBEFORE
またはINSTEAD OF
で、かつ、TD["level"]
がROW
の場合、Pythonの関数から、行が変更されないことを示すNone
または"OK"
、イベントを中断したことを示す"SKIP"
を返すことができます。
また、TD["event"]
がINSERT
またはUPDATE
の場合、行を変更したことを示す"MODIFY"
を返すことができます。
さもなければ、戻り値は無視されます。