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

क्या MySql स्वचालित रूप से पंक्तियों को लॉक करता है या क्या मुझे शेयर मोड में लॉक जोड़ने की आवश्यकता है?

मुझे लगता है कि मेरी टिप्पणियों के आपके उत्तरों के आधार पर, आपको वास्तव में टेबल लॉक को मैन्युअल रूप से संभालने के बारे में चिंता करने की ज़रूरत नहीं है। InnoDB पंक्ति-स्तरीय लॉकिंग का समर्थन करता है और ऑटोकॉमिट सक्षम होने के साथ (जैसा कि यह डिफ़ॉल्ट रूप से होता है) सभी व्यक्तिगत प्रश्नों को वास्तव में एक लेनदेन तरीके से नियंत्रित किया जाता है।

अब यदि आपके पास एक से अधिक SQL क्वेरी हैं जिन्हें एकल लेनदेन के रूप में संभालने की आवश्यकता है (अर्थात एक तालिका अपडेट करें, फिर दूसरी तालिका अपडेट करें - या तो दोनों सफल हों या दोनों वापस लुढ़क जाएं) तो आपको विशेष रूप से एक लेनदेन शुरू करने और या तो इसे करने की आवश्यकता होगी या अनंतिम प्रश्नों के निष्पादित होने के बाद इसे वापस रोल करें।

आप SET TRANSACTION . का भी उपयोग कर सकते हैं स्टेटमेंट अगर आपको ट्रांजेक्शन आइसोलेशन लेवल बदलने की जरूरत है (यह डिफ़ॉल्ट रूप से `रिपीटेबल रीड1 है)।

अधिक जानकारी के लिए MySQL दस्तावेज़ीकरण




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या मुझे InnoDB में एक साथ COUNT से बचना चाहिए?

  2. क्या मुझे mysql_close (कनेक्शन) का उपयोग करने की आवश्यकता है?

  3. यह निर्धारित करने का सबसे सस्ता तरीका है कि क्या MySQL कनेक्शन अभी भी जीवित है

  4. परिणाम सेट में ऑटो-नंबरिंग पंक्तियों के लिए शुद्ध-एसक्यूएल तकनीक

  5. MySQL त्रुटि कोड:भंडारण इंजन से 1030Got त्रुटि -1; मैंने अपने डेटाबेस से डेटा हटाने की कोशिश की है