他のバージョンの文書 16 | 15 | 14 | 13 | 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 | 7.2

43.6. トリガ関数

トリガとして関数を使用した場合、TD辞書にトリガに関連した値が格納されます。

TD["event"]

次のイベントが文字列として格納されます。 INSERTUPDATEDELETETRUNCATE

TD["when"]

BEFOREAFTER、または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"を返すことができます。 さもなければ、戻り値は無視されます。