MySQL में मौजूदा ट्रिगर को सुरक्षित रूप से हटाने के लिए DROP TRIGGER IF EXISTS का उपयोग करें। यह ट्रिगर न होने पर भी त्रुटि नहीं देता।
सिंटैक्स
DROP TRIGGER IF EXISTS yourTriggerName;
उदाहरण के साथ समझें
1. मौजूदा ट्रिगर जांचें
mysql> SHOW TRIGGERS;
आउटपुट (CheckSalary ट्रिगर मौजूद है):
+-------------+--------+---------------+------------------------------------------------------------------------+--------+------------------------+--------------------------------------------+---------+----------------------+----------------------+--------------------+
| Trigger | Event | Table | Statement | Timing | Created | sql_mode | Definer | character_set_client | collation_connection | Database Collation |
+-------------+--------+---------------+------------------------------------------------------------------------+--------+------------------------+--------------------------------------------+---------+----------------------+----------------------+--------------------+
| CheckSalary | INSERT | employeetable | if new.EmployeeSalary < 1000 then set new.EmployeeSalary = 10000;end if | BEFORE | 2018-12-31 17:33:29.54 | STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION | root@% | utf8 | utf8_general_ci | utf8mb4_0900_ai_ci |
+-------------+--------+---------------+------------------------------------------------------------------------+--------+------------------------+--------------------------------------------+---------+----------------------+----------------------+--------------------+
2. ट्रिगर हटाएं
mysql> DROP TRIGGER IF EXISTS CheckSalary;
Query OK, 0 rows affected (0.30 sec)
3. फिर से जांचें - ट्रिगर हट गया
mysql> SHOW TRIGGERS;
Empty set (0.00 sec)
IF EXISTS का महत्व
- बिना IF EXISTS: यदि ट्रिगर नहीं है तो
ERROR 1360 (HY000): Trigger does not exist - IF EXISTS के साथ: ट्रिगर न होने पर चुपचाप सफल होता है (Warning दे सकता है)
- स्क्रिप्ट्स और माइग्रेशन में हमेशा
IF EXISTSउपयोग करें
विशिष्ट डेटाबेस में ट्रिगर हटाएं
DROP TRIGGER IF EXISTS `database_name`.`trigger_name`;
सभी ट्रिगर एक डेटाबेस से देखें
SHOW TRIGGERS FROM `database_name`;
ट्रिगर बनाने का उदाहरण (संदर्भ के लिए)
CREATE TRIGGER CheckSalary
BEFORE INSERT ON employeetable
FOR EACH ROW
BEGIN
IF NEW.EmployeeSalary < 1000 THEN
SET NEW.EmployeeSalary = 10000;
END IF;
END;
नोट
- ट्रिगर हटाने के लिए
TRIGGERविशेषाधिकार आवश्यक DROP TRIGGERट्रिगर परिभाषा को स्थायी रूप से हटा देता है- संबंधित टेबल या डेटा प्रभावित नहीं होता