কম্পিউটার

কিভাবে 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. একাধিক কলাম সহ একটি মাইএসকিউএল টেবিলে কীভাবে শর্ত তৈরি করবেন?

  2. কিভাবে একটি MySQL টেবিল একটি অক্ষর প্রতিস্থাপন?

  3. কিভাবে ব্যাচ আপডেট MySQL টেবিল?

  4. মাইএসকিউএল-এ একটি টেবিল বিদ্যমান থাকলে আমি কীভাবে সনাক্ত করব?