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

(Postgresql) कस्टम प्रतिकृति के लिए तालिका ट्रिगर फ़ंक्शन को लॉग तालिका में परिवर्तित पंक्ति का आईडी मान डालें

मैं ट्रिगर में AFTER से BEFORE को बदलकर इसे हल करने में सक्षम था, जो मुझे विश्वास था कि पहले काम नहीं करेगा, या:

    CREATE OR REPLACE FUNCTION Insert() RETURNS TRIGGER AS $ReplInsert$
    BEGIN
        IF (TG_OP = 'DELETE') THEN
            INSERT INTO "log" ("Operation","ID","NAME")
    VALUES ('DELETE', OLD.ID, OLD.NAME);
            RETURN OLD;
        ELSIF (TG_OP = 'UPDATE') THEN
            INSERT INTO "log" ("Operation","ID","NAME")
    VALUES ('UPDATE', NEW.ID ,NEW.NAME);
            RETURN NEW;
        ELSIF (TG_OP = 'INSERT') THEN
            INSERT INTO "log" ("Operation","ID","NAME")
    VALUES ('UPDATE', NEW.ID , NEW.NAME);
            RETURN NEW;
        END IF;
        RETURN NULL; 
    END;
$ReplInsert$ LANGUAGE plpgsql;

CREATE TRIGGER logTrg
BEFORE INSERT OR UPDATE OR DELETE ON "FIRST_NAME"
    FOR EACH ROW EXECUTE PROCEDURE Insert();



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL:SQL Server 2008 R2 से PostgreSQL 9.5 में डेटा निर्यात करें

  2. Psql सर्वर से कनेक्ट नहीं हो सका:ऐसी कोई फ़ाइल या निर्देशिका नहीं, 5432 त्रुटि?

  3. PostgreSQL में अधिकतम लेनदेन आकार

  4. Postgresql:दिनांक स्वरूप और स्थानीय भाषा आउटपुट

  5. PostgreSQL 9.6 संग्रहीत कार्यविधि प्रदर्शन में सुधार