DELETE ऑपरेशन निष्पादित होने के बाद ट्रिगर को सक्रिय करने के लिए AFTER DELETE का उपयोग करें। निम्नलिखित वाक्य रचना है -
DELIMITER // क्रिएट करें TRIGGER yourTriggerName DELETE ON yourTableName प्रत्येक पंक्ति के लिए आपका Statement1 शुरू होता है। . एन अंत; //
आइए पहले एक टेबल बनाएं -
mysql> तालिका बनाएं DemoTable(Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,FirstName varchar(100));क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.62 सेकंड)
इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें -
mysql> डेमोटेबल (फर्स्टनाम) वैल्यू ('जॉन') में डालें; क्वेरी ओके, 1 पंक्ति प्रभावित (0.20 सेकंड) mysql> डेमोटेबल (फर्स्टनाम) वैल्यू ('माइक') में डालें; क्वेरी ओके, 1 पंक्ति प्रभावित ( 0.12 सेकंड)
चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें -
mysql> डेमोटेबल से *चुनें;
यह निम्नलिखित आउटपुट उत्पन्न करेगा -
<पूर्व>+----+-----------+| आईडी | प्रथम नाम |+----+-----------+| 1 | जॉन || 2 | माइक |+----+-----------+2 पंक्तियों में सेट (0.00 सेकंड)ट्रिगर बनाने और AFTER DELETE का उपयोग करने के लिए क्वेरी निम्नलिखित है -
mysql> DELIMITER //mysql> प्रत्येक पंक्ति के लिए डेमोटेबल पर डिलीट करने के बाद TRIGGER history_of_Table बनाएं @userName में उपयोगकर्ता () का चयन करें; अभी चुनें () @deleteDatetime में; अंत; // क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.18 सेकंड)mysql> DELIMITER;
यह जांचने के लिए कि ट्रिगर काम कर रहा है या नहीं, तालिका से पहला रिकॉर्ड हटाएं -
mysql> DemoTable से हटाएं जहां Id=1;क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.26 सेकंड)
ऊपर, हमने तालिका से पहला रिकॉर्ड हटा दिया है। इसका मतलब है कि DELETE कमांड के उपयोग के बाद ट्रिगर सक्रिय होना चाहिए -
mysql> @userName चुनें;
यह निम्नलिखित आउटपुट उत्पन्न करेगा -
<पूर्व>+----------------+| @उपयोगकर्ता नाम |+----------------+| रूट@लोकलहोस्ट |+----------------+1 पंक्ति सेट में (0.00 सेकंड)जब भी ट्रिगर काम करता है तो यह वर्तमान समय प्रदर्शित करता है -
mysql> @deleteDatetime चुनें;
यह निम्नलिखित आउटपुट उत्पन्न करेगा -
<पूर्व>+---------------------+| @deleteDatetime |+---------------------+| 2019-07-09 21:06:31 |+---------------------+1 पंक्ति सेट में (0.00 सेकंड)