में उपयोग करने के लिए वर्तमान अद्यतन कॉलम नाम प्राप्त करें क्या वास्तव में कॉलम नाम प्राप्त करने का कोई तरीका है जिसे इसे ट्रिगर में उपयोग करने के लिए अपडेट किया गया था?ट्रिगर
मूल रूप से मैं एक उपयोगकर्ता आवेषण या एक मेज अद्यतन करता है जब भी
CREATE TRIGGER `after_update_contact`
AFTER UPDATE ON `contact` FOR EACH ROW
BEGIN
INSERT INTO user_audit (id_user, even_date, table_name, record_id, field_name, old_value, new_value)
VALUES (NEW.updatedby, NEW.lastUpdate, 'contact', NEW.id_contact, [...])
END
मैं का नाम कैसे प्राप्त कर सकते हैं (इस मामले में यह एक संपर्क तालिका के साथ क्या करना है में) एक लेखापरीक्षा निशान के लिए कोशिश कर रहा हूँ कॉलम जिसे अपडेट किया गया है और उस से OLD
और NEW
उस कॉलम के मान प्राप्त होते हैं। यदि एक पंक्ति में एकाधिक कॉलम अपडेट किए गए हैं या यहां तक कि एकाधिक पंक्तियों को प्रत्येक अद्यतन के लिए ऑडिट करना संभव होगा?
जब तक मैं गलत समझा आप क्या मतलब मैं काफी यकीन है कि कैसे है कि मुझे मदद करता है नहीं कर रहा हूँ, मैं इतना मैं नहीं कर सकता अग्रिम में नहीं पता है कि क्या स्तंभ अपडेट किया जा रहा ट्रिगर में इसे हार्डकोड करें। मुझे यह पता लगाना होगा कि कौन सा कॉलम अपडेट किया गया है और ऑडिट तालिका में इसका नाम डालें। – Serge
तो आपको सभी कॉलम जांचना होगा। जैसा कि मैंने आपको बताया था, ट्रिगर्स MySQL में बहुत सीमित हैं। –
मुझे इससे डर था ... तो अगर मेरी तालिका में 5 कॉलम हैं तो मुझे प्रत्येक अद्यतन कॉलम का ऑडिट करने के लिए प्रत्येक के लिए कथन के साथ-साथ INSERT का उपयोग करने की आवश्यकता होगी? – Serge