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

इवेंट बनाते समय ON COMPLETION PRESERVE क्लॉज का क्या उपयोग है?


जैसा कि हम जानते हैं कि एक इवेंट समाप्त होने पर स्वचालित रूप से ड्रॉप हो जाता है और हम इसे SHOW EVENTS स्टेटमेंट से देख नहीं पाएंगे। ऐसे व्यवहार को बदलने के लिए हम इवेंट बनाते समय ON COMPLETION PRESERVE का उपयोग कर सकते हैं। इसे निम्न उदाहरण से समझा जा सकता है -

उदाहरण

mysql> Create table event_messages(ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT, MESSAGE VARCHAR(255) NOT NULL, Generated_at DATETIME NOT NULL); 
Query OK, 0 rows affected (0.61 sec)

नीचे दी गई क्वेरी ON COMPLETION PRESERVE के बिना इवेंट बनाएगी इसलिए यह SHOW EVENTS FROM db_name क्वेरी के आउटपुट में नहीं दिखेगी।

mysql> CREATE EVENT testing_event_without_Preserves ON SCHEDULE AT CURRENT_TIMESTAMP DO INSERT INTO event_messages(message,generated_at) Values('Without Preserve',NOW()); 
Query OK, 0 rows affected (0.00 sec)

mysql> Select * from event_messages; 
+----+------------------+---------------------+
| ID | MESSAGE          | Generated_at        |
+----+------------------+---------------------+
| 1  | Without Preserve | 2017-11-22 20:32:13 |
+----+------------------+---------------------+
1 row in set (0.00 sec)

mysql> SHOW EVENTS FROM query\G 
*************************** 1. row *************************** 
                  Db: query 
                Name: testing_event5 
             Definer: root@localhost 
           Time zone: SYSTEM 
                Type: ONE TIME 
            Execute at: 2017-11-22 17:09:11 
      Interval value: NULL 
      Interval field: NULL 
              Starts: NULL 
              Ends: NULL 
              Status: DISABLED 
          Originator: 0 
character_set_client: cp850 
collation_connection: cp850_general_ci 
  Database Collation: latin1_swedish_ci 
1 row in set (0.00 sec)

नीचे दी गई क्वेरी ON COMPLETION PRESERVE के साथ इवेंट बनाएगी इसलिए यह SHOW EVENTS FROM db_name क्वेरी के आउटपुट में दिखेगी।

mysql> CREATE EVENT testing_event_with_Preserves ON SCHEDULE AT CURRENT_TIMESTAMP ON COMPLETION PRESERVE DO INSERT INTO event_messages(message,generated_at) Values('With Preserve',NOW()); 
Query OK, 0 rows affected (0.00 sec)

mysql> Select * from event_messages; 
+----+------------------+---------------------+
| ID | MESSAGE          | Generated_at        |
+----+------------------+---------------------+
| 1  | Without Preserve | 2017-11-22 20:32:13 |
| 2  | With Preserve    | 2017-11-22 20:35:12 |
+----+------------------+---------------------+
2 rows in set (0.00 sec)

mysql> SHOW EVENTS FROM query\G 
*************************** 1. row *************************** 
                  Db: query 
                Name: testing_event5 
             Definer: root@localhost 
           Time zone: SYSTEM 
                Type: ONE TIME 
            Execute at: 2017-11-22 17:09:11 
      Interval value: NULL 
      Interval field: NULL 
              Starts: NULL 
              Ends: NULL 
              Status: DISABLED 
          Originator: 0 
character_set_client: cp850 
collation_connection: cp850_general_ci 
  Database Collation: latin1_swedish_ci 
*************************** 2. row *************************** 
                  Db: query 
                Name: testing_event_with_Preserves 
             Definer: root@localhost 
           Time zone: SYSTEM 
                Type: ONE TIME 
            Execute at: 2017-11-22 20:35:12 
      Interval value: NULL 
      Interval field: NULL 
              Starts: NULL 
              Ends: NULL 
              Status: DISABLED 
          Originator: 0 
character_set_client: cp850 
collation_connection: cp850_general_ci 
  Database Collation: latin1_swedish_ci 
2 rows in set (0.00 sec)

  1. - क्या MySQL टेबल बनाते समय {} का उपयोग कर सकते हैं?

    नहीं, टेबल बनाते समय आपको खुले और बंद पैरेंथेसिस जैसे ( ) का उपयोग करने की आवश्यकता है। नीचे दिए गए सिंटैक्स का उपयोग करें: CREATE TABLE IF NOT EXISTS yourTableName ( yourColumnName1 dataType1, ... N ); आइए पहले एक टेबल बनाते हैं: CREATE TABLE IF NOT EXISTS DemoTable ( CustomerId IN

  1. - MySQL तालिका बनाते समय आरक्षित कीवर्ड 'Key' का उपयोग करना

    MySQL में बैकटिक का उपयोग करके आरक्षित कीवर्ड Key को कॉलम नाम के रूप में उपयोग करना KEY MySQL में एक आरक्षित शब्द है (इंडेक्स के लिए समानार्थी)। इसे कॉलम नाम के रूप में उपयोग करने के लिए बैकटिक (`) में लपेटना आवश्यक है। व्यावहारिक उदाहरण बैकटिक के साथ तालिका बनाना CREATE TABLE DemoTable ( `Ke

  1. - Java 9 मॉड्यूल सिस्टम: module-info.java में requires क्लॉज

    Java 9 मॉड्यूल सिस्टम में, module-info.java में requires क्लॉज मॉड्यूल निर्भरताओं की घोषणा करता है। डिफ़ॉल्ट रूप से, एक मॉड्यूल मॉड्यूल पथ पर अन्य मॉड्यूल्स को नहीं देख सकता - प्रत्येक निर्भरता को स्पष्ट रूप से घोषित किया जाना चाहिए। requires क्लॉज के प्रकार 1. साधारण आवश्यकता: requires <module