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

ट्रिगर के साथ क्या होता है जब हम उस ट्रिगर वाली तालिका को छोड़ देंगे?


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

उदाहरण

मान लीजिए कि हमारे पास 'नमूना' नाम की तालिका पर 'trigger_before_delete_sample' नाम का एक ट्रिगर है। अब यदि हम इस तालिका को हटा देंगे तो इस तालिका से संबद्ध उपरोक्त ट्रिगर भी हटा दिया जाएगा।

mysql> ट्रिगर दिखाएँ\G***************************** 1. पंक्ति *********** **************** ट्रिगर:ट्रिगर_before_delete_sample इवेंट:DELETE टेबल:सैंपल स्टेटमेंट:BEGIN SET @count =if (@count IS NULL, 1, (@count+1)); INSERT INTO sample_rowप्रभावित मान (@count);END समय:पहले बनाया गया: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, NO_UT_CP_CREET cp850_general_ci डेटाबेस कोलेशन:latin1_swedish_ci**************************** 2. पंक्ति *************** ************ ट्रिगर:पहले_इनसर_स्टूडेंटेज इवेंट:INSERT तालिका:छात्र_आयु विवरण:यदि नया है। :26:15.34 वर्ग_मोड: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 परिभाषित करने वाला:root@localhost character_set_client:cp850 collation_connection:cp850_general_ci डेटाबेस संयोजन:latin1_swedish_ci2 पंक्तियों में setpre (0.01) 

उपरोक्त परिणाम सेट से पता चलता है कि डेटाबेस में दो ट्रिगर हैं इनमें से एक ट्रिगर है जो 'नमूना' नामक तालिका से जुड़ा है। अब निम्नलिखित कथन की सहायता से, हम तालिका को DROP करेंगे -

mysql> DROP तालिका का नमूना;क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.26 सेकंड)

अब निम्नलिखित कथन की सहायता से, हम देख सकते हैं कि 'नमूना' नामक तालिका से संबद्ध ट्रिगर भी नष्ट हो गया है।

mysql> ट्रिगर दिखाएँ\G***************************** 1. पंक्ति *********** **************** ट्रिगर:पहले_इनसर_स्टूडेंटेज इवेंट:INSERT तालिका:छात्र_आयु विवरण:यदि नया है। 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:जड़ @ स्थानीय होस्ट character_set_client:cp850 collation_connection:cp850_general_ci डाटाबेस मिलान:सेट में latin1_swedish_ci1 पंक्ति (0.01 सेकंड) 

  1. तालिका रिकॉर्ड में तार प्राप्त करें जो संख्याओं के साथ समाप्त होता है?

    इसके लिए आपको REGEXP का उपयोग करना होगा। वाक्य रचना इस प्रकार है - select *from yourTableName where yourColumnName REGEXP '[[:digit:]]$'; उपरोक्त वाक्य रचना को समझने के लिए, आइए एक तालिका बनाते हैं। तालिका बनाने की क्वेरी इस प्रकार है - mysql> create table StringEndsWithNumber   &nb

  1. MySQL के साथ तालिका में मानों में फेरबदल करें

    तालिका में मानों में फेरबदल करने के लिए, MySQL रैंड () का उपयोग करें। आइए पहले एक टेबल बनाएं - टेबल बनाएं DemoTable792 (नाम varchar(100), सब्जेक्ट varchar(100));क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.66 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - डेमोटेबल 792 मानों में डालें (कैर

  1. इस क्वेरी में MySQL सिंटैक्स त्रुटि क्या है - आरक्षित कीवर्ड के साथ तालिका बनाना?

    मान लें कि हमने ग्रुप्स नाम से एक टेबल बनाने की कोशिश की, जो कि MySQL में एक आरक्षित कीवर्ड है आप ग्रुप्स का उपयोग नहीं कर सकते क्योंकि ग्रुप्स MySQL में एक आरक्षित कीवर्ड है। समूह नाम की तालिका बनाते समय निम्न त्रुटि हुई - );ERROR 1064 (42000):आपके SQL सिंटैक्स में त्रुटि है; लाइन 1 पर समूहों (आई