MySQL-এ টেবিলের কলেশন পরিবর্তন করা
MySQL-এ একটি টেবিলের কলেশন (collation) পরিবর্তন করতে ALTER TABLE কমান্ড ব্যবহার করা হয়। তবে লক্ষ্য করুন, উদাহরণে utf8_general_ci ব্যবহার করা হয়েছে, utf8_bin নয়। utf8_bin ব্যবহার করতে হলে সিনট্যাক্স হবে:
সিনট্যাক্স
ALTER TABLE yourTableName COLLATE utf8_bin;
উদাহরণ
টেবিল তৈরি
mysql> CREATE TABLE CollateDemo (
-> Id INT NOT NULL AUTO_INCREMENT,
-> Name VARCHAR(20),
-> Age INT,
-> PRIMARY KEY(Id)
-> );
বর্তমান কলেশন যাচাই (SHOW CREATE TABLE)
mysql> SHOW CREATE TABLE CollateDemo;
আউটপুট (ডিফল্ট কলেশন)
+-------------+-----------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------------+-----------------------------------------------------------------------------------------------------------------------------------+ | CollateDemo | CREATE TABLE `collatedemo` (`Id` int(11) NOT NULL AUTO_INCREMENT, `Name` varchar(20) DEFAULT NULL, `Age` int(11) DEFAULT NULL, PRIMARY KEY (`Id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci | +-------------+-----------------------------------------------------------------------------------------------------------------------------------+
কলেশন পরিবর্তন করা
mysql> ALTER TABLE CollateDemo COLLATE utf8_bin; Query OK, 0 rows affected (0.39 sec)
পরিবর্তন যাচাই
mysql> SHOW CREATE TABLE CollateDemo;
আউটপুট (নতুন কলেশন)
+-------------+-----------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------------+-----------------------------------------------------------------------------------------------------------------------------------+ | CollateDemo | CREATE TABLE `collatedemo` (`Id` int(11) NOT NULL AUTO_INCREMENT, `Name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, `Age` int(11) DEFAULT NULL, PRIMARY KEY (`Id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin | +-------------+-----------------------------------------------------------------------------------------------------------------------------------+
মনে রাখবেন: টেবিল লেভেলে কলেশন পরিবর্তন করলে শুধু নতুন কলামগুলোর জন্য ডিফল্ট কলেশন বদলে যায়। বিদ্যমান কলামগুলোর কলেশন পরিবর্তন করতে হলে প্রতিটি কলামের জন্য আলাদা MODIFY COLUMN ব্যবহার করতে হয়।