22.2. トリガ関数

トリガ内で関数を使用した場合、TD 辞書にトリガに関連した値が格納されます。 トリガの行は、トリガイベントに応じて、TD["new"]TD["old"] のどちらかまたは両方に格納されます。TD["event"] には、(INSERT, UPDATE, DELETE, または UNKNOWN という)文字列としてイベントが格納されます。 TD["when"] には、BEFOREAFTER、および UNKNOWNのいずれかが格納されます。 TD["level"] には、ROWSTATEMENT、および UNKNOWN のいずれかが格納されます。 TD["name"] にはトリガの名前が、TD["relid"] にはトリガの発生元テーブルのリレーション ID が格納されます。トリガが引数付きで呼び出された場合、その引数は TD["args"][0] to TD["args"][(n -1)] として使用することができます。

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