OLD
dan NEW
null atau tidak ditentukan dalam pemicu tingkat pernyataan. Per dokumentasi:
Penekanan saya yang berani.
Hingga Postgres 10 ini membaca sedikit berbeda, dengan efek yang sama, meskipun:
Sementara variabel record tersebut masih tidak berguna untuk pemicu tingkat pernyataan, fitur baru yang sangat banyak adalah:
Tabel transisi di Postgres 10+
Postgres 10 memperkenalkan tabel transisi. Itu memungkinkan akses ke seluruh rangkaian baris yang terpengaruh. Manual:
Ikuti tautan ke manual untuk contoh kode.
Contoh pemicu tingkat pernyataan tanpa tabel transisi
Sebelum munculnya tabel transisi, itu bahkan kurang umum. Contoh yang berguna adalah mengirim pemberitahuan
setelah perintah DML tertentu.
Berikut adalah versi dasar dari apa yang saya gunakan:
-- 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();
Untuk Postgres 11 atau yang lebih baru, gunakan sintaks yang setara dan tidak terlalu membingungkan:
...
EXECUTE FUNCTION trg_notify_after();
Lihat: