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

Postgresql में डेटा परिवर्तन कैसे लॉग करें?

बहुत ही सामान्य ट्रिगर फ़ंक्शन, वहां पाया गया:https://www। साइबरटेक-postgresql.com/hi/tracking-changes-in-postgresql/

इतिहास संगृहीत करने के लिए तालिका:

CREATE SCHEMA logging;
CREATE TABLE logging.t_history (
        id             serial,
        tstamp         timestamp DEFAULT now(),
        schemaname     text,
        tabname        text,
        operation      text,
        who            text DEFAULT current_user,
        new_val        json,
        old_val        json
);

ट्रिगर:

CREATE FUNCTION change_trigger() RETURNS trigger AS $$
       BEGIN
         IF TG_OP = 'INSERT'
         THEN INSERT INTO logging.t_history (
                tabname, schemaname, operation, new_val
              ) VALUES (
                TG_RELNAME, TG_TABLE_SCHEMA, TG_OP, row_to_json(NEW)
              );
           RETURN NEW;
         ELSIF  TG_OP = 'UPDATE'
         THEN
           INSERT INTO logging.t_history (
             tabname, schemaname, operation, new_val, old_val
           )
           VALUES (TG_RELNAME, TG_TABLE_SCHEMA, TG_OP, row_to_json(NEW), row_to_json(OLD));
           RETURN NEW;
         ELSIF TG_OP = 'DELETE'
         THEN
           INSERT INTO logging.t_history
             (tabname, schemaname, operation, old_val)
             VALUES (
               TG_RELNAME, TG_TABLE_SCHEMA, TG_OP, row_to_json(OLD)
             );
             RETURN OLD;
         END IF;
       END;
$$ LANGUAGE 'plpgsql' SECURITY DEFINER;

ट्रिगर लागू करें:

CREATE TRIGGER t BEFORE INSERT OR UPDATE OR DELETE ON your_table
        FOR EACH ROW EXECUTE PROCEDURE change_trigger();


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. प्रोग्रामिंग त्रुटि:psycopg2 का उपयोग करके अजगर में क्वेरी निष्पादित करते समय या उसके पास सिंटैक्स त्रुटि

  2. PostgreSQL के साथ XML विहित तुलना कैसे करें?

  3. रेल के साथ एक प्रश्न में एकाधिक कथन कैसे निष्पादित कर सकते हैं?

  4. Postgresql और pgadmin docker कंटेनरों के साथ समस्या

  5. s3 से postgresql rds में डेटा फ़ाइलों को कैसे आयात करें