40.2. トリガ関数

トリガとして関数を使用した場合、TD辞書にトリガに関連した値が格納されます。 トリガの行は、トリガイベントに応じて、TD["new"]TD["old"]のどちらかまたは両方に格納されます。 TD["event"]には、(INSERTUPDATEDELETEまたはUNKNOWNという)文字列としてイベントが格納されます。 TD["when"]には、BEFOREAFTER、およびUNKNOWNのいずれかが格納されます。 TD["name"]には、トリガ名称が、TD["table_name"]にはトリガの発生元のテーブルの名前が、TD["table_schema"]にはトリガの発生元のテーブルのスキーマが格納されます。 TD["level"]には、ROWSTATEMENT、およびUNKNOWNのいずれかが格納されます。 TD["name"]にはトリガの名前が、TD["relid"]にはトリガの発生元テーブルのOIDが格納されます。 CREATE TRIGGERに引数が含まれていた場合、その引数はTD["args"][0]からTD["args"][(n -1)]までとして使用することができます。

TD["when"]BEFOREの場合、Pythonの関数から、行が変更されないことを示すNoneまたは"OK"、イベントを中断したことを示す"SKIP"、または行を変更したことを示す"MODIFY"を返すことができます。