Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में DROP TRIGGER IF EXISTS से ट्रिगर कैसे हटाएं?

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 ट्रिगर परिभाषा को स्थायी रूप से हटा देता है
  • संबंधित टेबल या डेटा प्रभावित नहीं होता
  1. - MySQL में SELECT 1 का उपयोग करके मान मौजूद है या नहीं कैसे चेक करें

    EXISTS पैटर्न के रूप में SELECT 1 का उपयोग मान मौजूद है या नहीं जांचने के लिए SELECT 1 पैटर्न का उपयोग करें। यह पूर्ण पंक्ति लौटाने से अधिक कुशल है। सिंटैक्स: SELECT 1 FROM yourTableName WHERE yourColumnName = yourValue; यदि उपरोक्त 1 लौटाता है, तो मान डेटाबेस में मौजूद है। आइए पहले एक टेबल बनाते है

  1. - MySQL में प्राइमरी की कैसे ड्रॉप करें?

    प्राइमरी की ड्रॉप करने के लिए, पहले ALTER का उपयोग करके टेबल को बदलें। इसके साथ, नीचे दिखाए अनुसार की ड्रॉप करने के लिए DROP का उपयोग करें: सिंटैक्स alter table yourTableName drop primary key; आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> StudentId int NOT NULL, -> S

  1. - MySQL में INSERT से पहले ट्रिगर कैसे बनाएं?

    MySQL में BEFORE INSERT ट्रिगर किसी नई पंक्ति के इन्सर्ट होने से पहले स्वचालित रूप से निष्पादित होता है। इसका उपयोग डेटा वैलिडेशन, डिफ़ॉल्ट मान सेट करने, बिजनेस नियम लागू करने, या इन्सर्ट रोकने के लिए किया जाता है। सिंटैक्स DELIMITER // CREATE TRIGGER trigger_name BEFORE INSERT ON table_name FOR EA