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

जब हम उस टेबल को ड्रॉप करेंगे जिसमें वह ट्रिगर है तो ट्रिगर का क्या होगा?


अगर हम उस टेबल को नष्ट करेंगे जिससे यह जुड़ा हुआ है तो ट्रिगर भी नष्ट हो जाएगा। इसे ट्रिगर का स्पष्ट विनाश कहा जाता है। इसे एक उदाहरण से समझा जा सकता है -

उदाहरण

मान लीजिए हमारे पास 'Sample' नामक टेबल पर 'trigger_before_delete_sample' नामक एक ट्रिगर है। अब अगर हम इस टेबल को डिलीट करेंगे तो इस टेबल से जुड़ा उपरोक्त ट्रिगर भी डिलीट हो जाएगा।

mysql> Show Triggers\G 
*************************** 1. row *************************** 
              Trigger: trigger_before_delete_sample 
                Event: DELETE 
                Table: sample 
            Statement: BEGIN          SET @count = if (@count IS NULL, 1, (@count+1)); 
         INSERT INTO sample_rowaffected values (@count); END 
               Timing: BEFORE 
              Created: 2017-11-21 12:31:58.70 
             sql_mode: ONLY_FULL_GROUP_BY, 
                       STRICT_TRANS_TABLES, 
                       NO_ZERO_IN_DATE, 
                       NO_ZERO_DATE, 
                       ERROR_FOR_DIVISION_BY_ZERO, 
                       NO_AUTO_CREATE_USER, 
                       NO_ENGINE_SUBSTITUTION 
              Definer: root@localhost 
 character_set_client: cp850 
 collation_connection: cp850_general_ci 
   Database Collation: latin1_swedish_ci 
*************************** 2. row *************************** 
              Trigger: before_inser_studentage 
                Event: INSERT 
                Table: student_age 
            Statement: IF NEW.age < 0 THEN SET NEW.age = 0; END IF 
               Timing: BEFORE 
              Created: 2017-11-21 11:26:15.34 
             sql_mode: ONLY_FULL_GROUP_BY, 
                       STRICT_TRANS_TABLES, 
                       NO_ZERO_IN_DATE, 
                       NO_ZERO_DATE, 
                       ERROR_FOR_DIVISION_BY_ZERO, 
                       NO_AUTO_CREATE_USER, 
                       NO_ENGINE_SUBSTITUTION 
              Definer: root@localhost 
 character_set_client: cp850 
 collation_connection: cp850_general_ci 
   Database Collation: latin1_swedish_ci 
2 rows in set (0.01 sec)

उपरोक्त रिजल्ट सेट दिखाता है कि डेटाबेस में दो ट्रिगर हैं जिनमें से एक 'Sample' नामक टेबल से जुड़ा ट्रिगर है। अब निम्न स्टेटमेंट की मदद से, हम टेबल को ड्रॉप करेंगे -

mysql> DROP table sample; 
Query OK, 0 rows affected (0.26 sec)

अब निम्न स्टेटमेंट की मदद से, हम देख सकते हैं कि 'Sample' नामक टेबल से जुड़ा ट्रिगर भी नष्ट हो गया है।

mysql> Show Triggers\G 
*************************** 1. row *************************** 
              Trigger: before_inser_studentage 
                Event: INSERT 
                Table: student_age 
            Statement: IF NEW.age < 0 THEN SET NEW.age = 0; END IF 
               Timing: BEFORE 
              Created: 2017-11-21 11:26:15.34 
             sql_mode: ONLY_FULL_GROUP_BY, 
                       STRICT_TRANS_TABLES, 
                       NO_ZERO_IN_DATE, 
                       NO_ZERO_DATE, 
                       ERROR_FOR_DIVISION_BY_ZERO, 
                       NO_AUTO_CREATE_USER, 
                       NO_ENGINE_SUBSTITUTION 
              Definer: root@localhost 
 character_set_client: cp850 
 collation_connection: cp850_general_ci 
   Database Collation: latin1_swedish_ci 
1 row in set (0.01 sec)

  1. - MySQL में REGEXP का उपयोग करके संख्या से समाप्त होने वाले स्ट्रिंग कैसे खोजें?

    MySQL में REGEXP का उपयोग करके अंक से समाप्त होने वाले स्ट्रिंग खोजना REGEXP ऑपरेटर का उपयोग करके पैटर्न मिलान कर सकते हैं। अंक से समाप्त होने के लिए [[:digit:]]$ पैटर्न का उपयोग करें। सिंटैक्स SELECT * FROM yourTableName WHERE yourColumnName REGEXP [[:digit:]]$; उदाहरण टेबल बनाएं: ); डेटा डाले

  1. - MySQL में टेबल के मानों को रैंडमली फेरबदल (Reshuffle) करें

    टेबल में मानों को फेरबदल करने के लिए MySQL RAND() का उपयोग करें। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable792 ( Name varchar(100), Subject varchar(100) ); Query OK, 0 rows affected (0.66 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTa

  1. - MySQL में आरक्षित कीवर्ड (जैसे groups) से टेबल बनाने पर सिंटैक्स एरर और समाधान

    समस्या groups MySQL आरक्षित कीवर्ड है। बिना बैकटिक्स के टेबल बनाने पर एरर: create table groups (id int, name varchar(40)); ERROR 1064 (42000): You have an error in your SQL syntax near groups (id int, name varchar(40)) at line 1 समाधान: बैकटिक्स (`) का उपयोग create table `groups` (id int, name v