मैं आपको काम करने के लिए एक प्रकार का एल्गोरिदम प्रदान कर सकता हूं, अधिकांश जमीनी काम पहले ही हो चुका है:
यह आपकी ऑडिट तालिका हो सकती है, संशोधित तिथि के रूप में टाइमस्टैम्प कॉलम या आपकी आवश्यकताओं के अनुसार अधिक जानकारी जोड़नी चाहिए:
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;
अधिक जानकारी की आवश्यकता होने पर बताएं।