Postgres में ट्रिगर सीधे ट्रिगर कोड प्रदान नहीं करते हैं, लेकिन एक ट्रिगर फ़ंक्शन call को कॉल करते हैं , जिसे किसी भी संख्या में ट्रिगर से कॉल किया जा सकता है, हालांकि अक्सर उन्हें एक विशेष टेबल पर एक विशेष घटना के लिए अनुकूलित किया जाता है।
ट्रिगर फ़ंक्शन:
CREATE OR REPLACE FUNCTION trg_some_tbl_foo()
RETURNS trigger AS
$func$
BEGIN
INSERT INTO some_tbl(key, name, describe) -- or some_other_tbl?
VALUES (OLD.key, OLD.name, OLD.describe);
RETURN OLD;
END
$func$ LANGUAGE plpgsql
CREATE TRIGGER foo -- not: "CREATE OR REPLACE" !
AFTER UPDATE OR DELETE ON some_tbl
FOR EACH ROW EXECUTE PROCEDURE trg_some_tbl_foo()
-
इसे एक
AFTER
बनाएं सरल करने के लिए ट्रिगर। एBEFORE
ट्रिगर कोRETURN NEW
अपडेट काम करने के लिए, लेकिनNEW
DELETE
. में दिखाई नहीं दे रहा है चालू कर देना। तो आपको चाहिएIF TG_OP = ...
आदि. -
सतत
INSERT
. के लिए हमेशा एक लक्ष्य सूची प्रदान करें बयान। यह Oracle ट्रिगर में उतना ही बुरा है। -
आपके पास संभवत:
serial
. के साथ एक तालिका है कॉलम। बस इंसर्ट में इसका उल्लेख न करें, अनुक्रम से अगली आईडी स्वचालित रूप से सम्मिलित हो जाती है।
SO पर यहाँ कई कोड उदाहरण हैं।