OLD
और NEW
कथन-स्तर ट्रिगर में शून्य या परिभाषित नहीं हैं। प्रति दस्तावेज़:
बोल्ड जोर मेरा।
पोस्टग्रेज 10 तक यह थोड़ा अलग, एक ही प्रभाव के लिए बहुत कुछ पढ़ता है, हालांकि:
हालांकि वे रिकॉर्ड वैरिएबल अभी भी स्टेटमेंट लेवल ट्रिगर्स के लिए किसी काम के नहीं हैं, एक नई सुविधा बहुत ज्यादा है:
पोस्टग्रेज 10+ में ट्रांज़िशन टेबल
पोस्टग्रेज 10 ने ट्रांजिशन टेबल पेश किए। वे प्रभावित पंक्तियों के पूरे सेट तक पहुंच की अनुमति देते हैं। मैनुअल:
कोड उदाहरणों के लिए मैनुअल के लिंक का अनुसरण करें।
उदाहरण स्टेटमेंट-लेवल ट्रिगर बिना ट्रांजिशन टेबल के
संक्रमण तालिकाओं के आगमन से पहले, वे और भी कम आम थे। एक उपयोगी उदाहरण सूचनाएं
भेजना है। कुछ डीएमएल आदेशों के बाद।
मैं जो उपयोग करता हूं उसका एक मूल संस्करण यहां दिया गया है:
-- 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();
देखें: