PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

जब स्थिति (पुरानी) हो तो ट्रिगर डालें या अपडेट करें

विकल्प ए:

आप कोड बदल सकते हैं ताकि ट्रिगर के बजाय स्थितियां ट्रिगर फ़ंक्शन में हों। इस दृष्टिकोण के साथ OLD केवल UPDATE में उपयोग किया जाएगा ।

ट्रिगर:

CREATE TRIGGER mytrigger
    BEFORE INSERT OR UPDATE ON "mytable"
    FOR EACH ROW 
    EXECUTE PROCEDURE mytrigger();

ट्रिगर फ़ंक्शन:

CREATE OR REPLACE FUNCTION mytrigger()
  RETURNS trigger AS
$BODY$
begin
if NEW.score > 0 then
     --code for Insert
     if  (TG_OP = 'INSERT') then
           YOUR CODE
     end if;

     --code for update
     if  (TG_OP = 'UPDATE') then
           if OLD.score <> NEW.score then  -- (if score can be null see @voytech comment to this post)
              YOUR CODE
           end if;
     end if;
end if;
return new;
end;
$BODY$
  LANGUAGE plpgsql VOLATILE

विकल्प बी:

जैसा कि थिलो ने दो ट्रिगर लिखने का सुझाव दिया है जो समान ट्रिगर फ़ंक्शन साझा करते हैं।

ट्रिगर:

प्रत्येक पंक्ति के लिए "mytable" पर डालने से पहले
CREATE TRIGGER mytrigger1
    BEFORE INSERT ON "mytable"
    FOR EACH ROW 
    WHEN NEW.score > 0
    EXECUTE PROCEDURE mytrigger();


CREATE TRIGGER mytrigger2
    BEFORE UPDATE ON "mytable"
    FOR EACH ROW 
    WHEN (NEW.score > 0 AND OLD.score <> NEW.score)
    EXECUTE PROCEDURE mytrigger();

ट्रिगर फ़ंक्शन:

CREATE OR REPLACE FUNCTION mytrigger()
  RETURNS trigger AS
$BODY$
begin
      YOUR CODE
return new;
end;
$BODY$
  LANGUAGE plpgsql VOLATILE


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पोस्टग्रेज में ग्रुप बाय - JSON डेटा प्रकार के लिए कोई समानता नहीं है?

  2. अपरिवर्तनीय, स्थिर और अस्थिर कीवर्ड फ़ंक्शन के व्यवहार को कैसे प्रभावित करते हैं?

  3. Heroku से बाहरी डेटाबेस का पालन करें

  4. fe_sendauth:Cloud9 IDE पर PostgreSQL डेटाबेस स्थापित करने के बाद कोई पासवर्ड त्रुटि प्रदान नहीं करता है

  5. अजगर और psycopg2 के साथ पोस्टग्रेज करने के लिए CSV आयात करते समय त्रुटि