OLD
およびNEW
nullであるか、ステートメントレベルのトリガーで定義されていません。 ドキュメントごと:
大胆な強調鉱山。
Postgres 10までは、これはわずかに異なりますが、ほとんど同じ効果があります:
これらのレコード変数はまだステートメントレベルのトリガーには使用できませんが、新機能は次のとおりです。
Postgres10以降の遷移表
Postgres10では遷移表が導入されました。これらは、影響を受ける行のセット全体へのアクセスを許可します。 マニュアル:
コード例については、マニュアルへのリンクをたどってください。
遷移表が登場する前は、それらはさらに一般的ではありませんでした。便利な例は、通知
を送信することです。 特定のDMLコマンドの後。
これが私が使用するものの基本バージョンです:
-- Generic trigger function, can be used for multiple triggers:
CREATE OR REPLACE FUNCTION trg_notify_after()
RETURNS trigger
LANGUAGE plpgsql AS
$func$
BEGIN
PERFORM pg_notify(TG_TABLE_NAME, TG_OP);
RETURN NULL;
END
$func$;
-- Trigger
CREATE TRIGGER notify_after
AFTER INSERT OR UPDATE OR DELETE ON my_tbl
FOR EACH STATEMENT
EXECUTE PROCEDURE trg_notify_after();
Postgres 11以降の場合は、同等の、混乱の少ない構文を使用します。
...
EXECUTE FUNCTION trg_notify_after();
参照: