Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

BEGIN...END बनाम START TRANSACTION...COMMIT

MySQL 5.7 और MySQL 8, दोनों में BEGIN और END टी-एसक्यूएल के समान है और सी, जावा, सी#, आदि में कर्ली-ब्रेसिज़ की तरह "कंपाउंड स्टेटमेंट" को "कोड का एक ब्लॉक" के रूप में भी जाना जाता है।

हालांकि, BEGIN कीवर्ड यह भी है (भ्रामक ढंग से) BEGIN WORK . के लिए एक उपनाम के रूप में अतिभारित और START TRANSACTION , और उनके शब्दार्थ इस बात पर निर्भर करते हैं कि उनका उपयोग किसी संग्रहीत प्रोग्राम के अंदर किया जा रहा है या नहीं:

तो:

  • START TRANSACTION
    • हमेशा एक लेन-देन शुरू करता है। आपको यह वाक्य रचना पसंद करनी चाहिए।
  • BEGIN :
    • यदि आप किसी संग्रहीत कार्यविधि, फ़ंक्शन, ट्रिगर या ईवेंट में हैं, तो BEGIN अपने आप में एक यौगिक कथन की शुरुआत का प्रतीक है। आप केवल START TRANSACTION . का उपयोग कर सकते हैं लेन-देन शुरू करने के लिए।
    • यदि आप सीधे MySQL के विरुद्ध SQL निष्पादित कर रहे हैं, तो यह एक लेन-देन भी शुरू करता है (जैसा कि इसे BEGIN WORK के रूप में समझा जाता है) ) लेकिन इसका इस तरह से उपयोग करना मूर्खतापूर्ण और भ्रमित करने वाला है, इसलिए इससे बचें।
  • BEGIN WORK :
    • यह START TRANSACTION . के लिए एक उपनाम है . मैं भ्रम को रोकने के लिए इसका पूरी तरह से उपयोग करने से बचूंगा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Moodle के लिए MySQL की निगरानी के लिए युक्तियाँ

  2. PDO::FETCH_ASSOC से एक सहयोगी सरणी मान का संदर्भ देना

  3. पीएचपी योग समारोह

  4. Openshift MySQL कार्ट्रिज को पुनरारंभ करने में त्रुटि

  5. mysql क्रॉस में शामिल हों, लेकिन डुप्लीकेट जोड़ी के बिना?