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

MySQL में एकाधिक तालिकाओं को कैसे लॉक करें?

<घंटा/>

आप LOCK TABLES कमांड की मदद से कई टेबल लॉक प्राप्त कर सकते हैं। वाक्य रचना इस प्रकार है -

LOCK TABLES yourTableName1 WRITE;
LOCK TABLES yourTableName2 WRITE;
LOCK TABLES yourTableName3 WRITE;
LOCK TABLES yourTableName4 WRITE;
.
.
.
N;

टेबल लॉक लेन-देन सुरक्षित नहीं हैं और यह दूसरी तालिका को लॉक करने का प्रयास करने से पहले पहले सक्रिय लेनदेन करता है।

मान लें कि मेरे पास ऑर्डरडेमो टेबल है -

mysql> create table OrderDemo
   -> (
   -> OrderId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> OrderPrice int,
   -> OrderDatetime datetime
   -> );
Query OK, 0 rows affected (0.66 sec)

तालिका ऑर्डरडेमो और utfdemo को लॉक करने की क्वेरी यहां दी गई है। Utfdemo पहले से ही नमूना डेटाबेस में मौजूद है। क्वेरी इस प्रकार है -

mysql> LOCK TABLES OrderDemo WRITE;
Query OK, 0 rows affected (0.03 sec)
mysql> LOCK TABLES utfdemo WRITE;
Query OK, 0 rows affected (0.07 sec)

अब यह एक सत्र के लिए टेबल को लॉक कर देता है। अगर आप टेबल बनाने की कोशिश करते हैं तो आपको एक एरर मिलेगी।

त्रुटि इस प्रकार है -

mysql> create table LockTableDemo
   -> (
   -> UserId int,
   -> UserName varchar(10)
   -> );
ERROR 1100 (HY000): Table 'LockTableDemo' was not locked with LOCK TABLES
mysql> create table UserIformation
   -> (
   -> UserId int,
   -> UserName varchar(10)
   -> );
ERROR 1100 (HY000): Table 'UserIformation' was not locked with LOCK TABLES

इसे ठीक करने के लिए, आपको MySQL को पुनरारंभ करना होगा।


  1. MySQL तालिका में किसी वर्ण को कैसे बदलें?

    केवल एक वर्ण को बदलने के लिए, MySQL में REPLACE() का उपयोग करें। आइए पहले एक टेबल बनाएं - );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.69 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - डेमोटेबल मानों में डालें (एडम स्मिटक); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.11 सेकंड) चयन कथन का उपयोग

  1. MySQL तालिका को बैच कैसे अपडेट करें?

    आइए पहले एक टेबल बनाएं - );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.59 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - डेमोटेबल मानों में डालें (7:55:00); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.10 सेकंड) चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें - डेमोटेबल से * चुनें; यह

  1. मैं कैसे पता लगा सकता हूं कि MySQL में कोई तालिका मौजूद है या नहीं?

    तालिका के अस्तित्व का पता लगाने के लिए, INFORMATION_SCHEMA.TABLES की अवधारणा का उपयोग करें। निम्नलिखित सिंटैक्स है - सूचना_स्कीमा.टेबल्स से table_name चुनें, जहां table_schema=database()और table_name=yourTableName; ऊपर दिए गए सिंटैक्स को समझने के लिए, आइए एक टेबल बनाएं - );क्वेरी ओके, 0 पंक्तियाँ