मैं निम्नलिखित MySQL ट्रिगरअद्यतन बयान के बाद MySQL ट्रिगर में पुराने मूल्य प्राप्त
SET @iUserId = OLD.LastChangedBy;
IF NOT NEW.LastChangedBy <=> OLD.LastChangedBy THEN
SET @iUserId = NEW.LastChangedBy;
END IF;
IF NOT NEW.BookingId<=> OLD.BookingId THEN
INSERT INTO AuditTrail VALUES (UUID(),@iUserId,'UPDATE','Booking', OLD.BookingId,'BookingType ',OLD.BookingType ,NEW.BookingType ,NOW());
END IF;
यह प्रत्येक पंक्ति के लिए बुकिंग पर अद्यतन करने के बाद TRIGGER Booking_AUPD
बनाएँ के रूप में कहा जाता है की है
समस्या मैं कैसे कर सकता है मुझे अद्यतन ट्रिगर के बाद OLD फ़ील्ड मान मिलता है?
यह स्पष्ट नहीं है कि आप क्या पूछ रहे हैं। कॉलम के मानों को संदर्भित करने के लिए, जैसा कि वे UPDATE से पहले थे, अद्यतन ट्रिगर के बाद, संदर्भ 'OLD.col_name', जैसा कि आपका नमूना कोड' OLD.LastChangedBy ', 'OLD.BookingID' के संदर्भों के साथ कर रहा है। , और अन्य। – spencer7593
हां ठीक है। मैं फ़ील्ड बुकिंग टाइप फ़ील्ड अपडेट करता हूं, और मुझे अपडेट ट्रिगर के बाद बुकिंग प्रकार के OLD मान प्राप्त करने की आवश्यकता है। क्या यह संभव है ? – Tommassiov
हां, आपके ट्रिगर बॉडी में 'OLD.BookingType' का संदर्भ पंक्ति के लिए 'बुकिंग प्रकार' कॉलम का मान वापस कर देगा जैसा कि अपडेट स्टेटमेंट निष्पादित होने से पहले था। यह संदर्भ INSERT कथन के मान खंड में है। (मुझे अभी भी यह समझना नहीं चाहिए कि आप क्या पूछ रहे हैं। हम ध्यान देते हैं कि INSERT केवल तभी निष्पादित किया जाएगा जब BookingId कॉलम के नए और OLD मान अलग हैं।) – spencer7593