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

मैं परिवर्तनों को संग्रहीत करने के लिए PostgreSQL ट्रिगर्स का उपयोग कैसे कर सकता हूं (SQL कथन और पंक्ति परिवर्तन)

https://www.postgresql.org/docs/current/static/plpgsql-trigger.html

से ऑडिट ट्रिगर का उदाहरण
CREATE TABLE emp (
    empname           text NOT NULL,
    salary            integer
);

CREATE TABLE emp_audit(
    operation         char(1)   NOT NULL,
    stamp             timestamp NOT NULL,
    userid            text      NOT NULL,
    empname           text      NOT NULL,
    salary integer
);

CREATE OR REPLACE FUNCTION process_emp_audit() RETURNS TRIGGER AS $emp_audit$
    BEGIN
        --
        -- Create a row in emp_audit to reflect the operation performed on emp,
        -- make use of the special variable TG_OP to work out the operation.
        --
        IF (TG_OP = 'DELETE') THEN
            INSERT INTO emp_audit SELECT 'D', now(), user, OLD.*;
            RETURN OLD;
        ELSIF (TG_OP = 'UPDATE') THEN
            INSERT INTO emp_audit SELECT 'U', now(), user, NEW.*;
            RETURN NEW;
        ELSIF (TG_OP = 'INSERT') THEN
            INSERT INTO emp_audit SELECT 'I', now(), user, NEW.*;
            RETURN NEW;
        END IF;
        RETURN NULL; -- result is ignored since this is an AFTER trigger
    END;
$emp_audit$ LANGUAGE plpgsql;

CREATE TRIGGER emp_audit
AFTER INSERT OR UPDATE OR DELETE ON emp
    FOR EACH ROW EXECUTE PROCEDURE process_emp_audit();


  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 JSON कॉलम को JSONB में अपग्रेड करें?

  2. क्लस्टरकंट्रोल का उपयोग करके एक डॉकटर कंटेनर में पोस्टग्रेएसक्यूएल को कैसे तैनात करें

  3. Libpq का उपयोग करके iPhone ऐप को PostgreSQL से कनेक्ट करें

  4. डिफ़ॉल्ट नल के साथ MySQL कॉलम - शैलीगत पसंद, या है ना?

  5. PostgreSQL के लिए सुरक्षा ऑडिट को स्वचालित करना