जब तक आप ट्रिगर को सक्रिय करने वाली पंक्ति में केवल परिवर्तन कर रहे हैं, तब तक BEFORE UPDATE
का उपयोग करना कहीं अधिक आसान (और सस्ता) है ट्रिगर, जो new.complete_flag
. में परिवर्तन कर सकता है UPDATE
. चलाने के बजाय, इसे तालिका में सहेजे जाने से पहले बयान के बाद यह पहले से ही है।
आप UPDATE OF <column>
के अद्यतन के साथ ट्रिगर को किसी विशेष फ़ील्ड के अपडेट तक सीमित कर सकते हैं CREATE TRIGGER
का खंड
बयान।
अंतिम परिणाम कुछ इस तरह दिखेगा:
CREATE FUNCTION completed_timestamp() RETURNS trigger AS $$
LANGUAGE plpgsql
BEGIN
IF new.complete_flag = 1 and old.completed_flag = 0 THEN
new.complete_time := current_timestamp;
END IF;
RETURN new;
END;
$$;
CREATE TRIGGER update_timestamp
BEFORE UPDATE OF completed_flag ON tbl_pXXXX
FOR EACH ROW
EXECUTE PROCEDURE completed_timestamp();