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

ऑडिट लॉग टेबल में परिवर्तन ईवेंट जोड़ने के लिए ट्रिगर कैसे बनाएं

मैं आपको काम करने के लिए एक प्रकार का एल्गोरिदम प्रदान कर सकता हूं, अधिकांश जमीनी काम पहले ही हो चुका है:

यह आपकी ऑडिट तालिका हो सकती है, संशोधित तिथि के रूप में टाइमस्टैम्प कॉलम या आपकी आवश्यकताओं के अनुसार अधिक जानकारी जोड़नी चाहिए:

CREATE TABLE audit (
     old_data VARCHAR(100),
     new_data VARCHAR(100),
     tbl_name VARCHAR(100)
)
|

यह एक संदर्भ ट्रिगर के रूप में इस्तेमाल किया जा सकता है; ध्यान दें कि प्रत्येक तालिका के लिए एक अलग ट्रिगर होगा:

CREATE TRIGGER testtrigger BEFORE UPDATE ON <table_name>
  FOR EACH ROW BEGIN
    INSERT INTO audit(old_data, new_data, tbl_name) VALUES (OLD.first_name, NEW.first_name, "testtable");
  END;
|

आपके पास प्रत्येक कॉलम के लिए एक से अधिक इंसर्ट स्टेटमेंट हो सकते हैं। यदि आप उस डेटा को सम्मिलित न करने पर प्रतिबंध लगाना चाहते हैं जो परिवर्तित नहीं हुआ है तो आप ट्रिगर में निम्न परिवर्तन कर सकते हैं:

IF(OLD.column_name <> NEW.column_name) THEN
    --Your insert query here
ELSE
    --NOOP
END IF;

अधिक जानकारी की आवश्यकता होने पर बताएं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP mysql को mysqli में बदलें

  2. पीडीओ के साथ पंक्ति गणना

  3. मेरे मैक पर अजगर mysqldb गलती:लाइब्रेरी लोड नहीं हुई:@ rpath/libmysqlclient.21.dylib

  4. Neo4j क्वेरी भाषा - साइफर

  5. MySQL प्रश्न - एकाधिक प्रकार के उपयोगकर्ताओं को कैसे संभालें - एक टेबल या एकाधिक?