परिचय
MySQL ट्रिगर डेटाबेस ऑब्जेक्ट हैं जो विशिष्ट घटनाओं (INSERT, UPDATE, DELETE) पर स्वचालित रूप से निष्पादित होते हैं। यह लेख दिखाता है कि कैसे एक टेबल में INSERT होने पर दूसरी टेबल को स्वचालित रूप से अपडेट करने के लिए AFTER INSERT ट्रिगर बनाया जाए।
उदाहरण: दो टेबल बनाना
mysql> CREATE TABLE DemoTable1 (
-> Id INT,
-> FirstName VARCHAR(20)
-> );
Query OK, 0 rows affected (0.52 sec)
mysql> CREATE TABLE DemoTable2 (
-> EmployeeId INT,
-> EmployeeName VARCHAR(20)
-> );
Query OK, 0 rows affected (0.51 sec)
ट्रिगर बनाना
mysql> DELIMITER //
mysql> CREATE TRIGGER updateDemoOnInsert
-> AFTER INSERT ON DemoTable2
-> FOR EACH ROW BEGIN
-> INSERT INTO DemoTable1 VALUES(110, 'Adam');
-> END
-> //
Query OK, 0 rows affected (0.14 sec)
mysql> DELIMITER ;
ट्रिगर घटक:
AFTER INSERT- INSERT के बाद निष्पादित होता हैON DemoTable2- लक्ष्य टेबलFOR EACH ROW- प्रत्येक सम्मिलित पंक्ति के लिए एक बार निष्पादितBEGIN ... END- ट्रिगर बॉडी (एकाधिक स्टेटमेंट के लिए)
डेटा डालकर ट्रिगर टेस्ट करना
mysql> INSERT INTO DemoTable2 VALUES(101, 'Mike');
Query OK, 1 row affected (0.22 sec)
दूसरी टेबल देखना (जहां INSERT हुआ)
mysql> SELECT * FROM DemoTable2;
आउटपुट:
+------------+--------------+
| EmployeeId | EmployeeName |
+------------+--------------+
| 101 | Mike |
+------------+--------------+
1 row in set (0.00 sec)
पहली टेबल देखना (ट्रिगर द्वारा अपडेट)
mysql> SELECT * FROM DemoTable1;
आउटपुट:
+------+-----------+
| Id | FirstName |
+------+-----------+
| 110 | Adam |
+------+-----------+
1 row in set (0.00 sec)
व्याख्या
- DemoTable2 में (101, 'Mike') डाला गया
- ट्रिगर स्वचालित रूप से सक्रिय हुआ
- DemoTable1 में (110, 'Adam') डाला गया (हार्डकोडेड मान)
व्यावहारिक उदाहरण: NEW रेफरेंस उपयोग करना
आमतौर पर आप सम्मिलित पंक्ति के डेटा का उपयोग करना चाहेंगे:
CREATE TRIGGER updateDemoOnInsert
AFTER INSERT ON DemoTable2
FOR EACH ROW
BEGIN
INSERT INTO DemoTable1 (Id, FirstName)
VALUES (NEW.EmployeeId, NEW.EmployeeName);
END;
NEW.column_name सम्मिलित/अपडेट की जा रही पंक्ति के नए मान को संदर्भित करता है।
ट्रिगर प्रकार
| घटना | ट्रिगर समय | उपयोग |
|---|---|---|
| INSERT | BEFORE / AFTER | मान्यता, लॉगिंग, सिंक |
| UPDATE | BEFORE / AFTER | ऑडिट, व्युत्पन्न कॉलम अपडेट |
| DELETE | BEFORE / AFTER | आर्काइव, सफाई |
ट्रिगर डेटा अखंडता और ऑडिटिंग बनाए रखने के लिए शक्तिशाली उपकरण हैं।