Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธีเปลี่ยน Collation เป็น utf8_bin ใน MySQL ด้วยคำสั่งเดียว

การเปลี่ยน Collation ของตารางใน MySQL

คุณสามารถใช้คำสั่ง ALTER TABLE เพื่อเปลี่ยน collation ของตารางได้ในบรรทัดเดียว คำสั่งนี้จะเปลี่ยน collation เริ่มต้นของตารางและคอลัมน์ใหม่ที่จะสร้างขึ้นในอนาคต

ไวยากรณ์

ALTER TABLE yourTableName COLLATE utf8_bin;

ตัวอย่างการใช้งาน

สร้างตารางทดสอบ:

CREATE TABLE CollateDemo (
    Id INT NOT NULL AUTO_INCREMENT,
    Name VARCHAR(20),
    Age INT,
    PRIMARY KEY(Id)
);

ตรวจสอบโครงสร้างตารางก่อนเปลี่ยน:

SHOW CREATE TABLE CollateDemo;

ผลลัพธ์ (ตัวอย่าง - collation เริ่มต้นอาจเป็น utf8mb4_0900_ai_ci):

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

เปลี่ยน collation เป็น utf8_general_ci (หรือ utf8_bin ตามต้องการ):

ALTER TABLE CollateDemo COLLATE utf8_general_ci;

ตรวจสอบอีกครั้งหลังเปลี่ยน:

SHOW CREATE TABLE CollateDemo;

ผลลัพธ์จะแสดง collation ใหม่ในระดับตาราง และคอลัมน์ VARCHAR จะมี CHARACTER SET และ COLLATE เฉพาะตัว

หมายเหตุสำคัญ

  • utf8_bin - เปรียบเทียบแบบ binary (case-sensitive, accent-sensitive)
  • utf8_general_ci - ไม่สนใจ case และ accent (ci = case insensitive)
  • utf8mb4 แนะนำให้ใช้แทน utf8 เพรองรองรับอักขระ Unicode เต็มรูปแบบ (รวม emoji)
  • การเปลี่ยน collation ระดับตารางจะส่งผลต่อคอลัมน์ใหม่เท่านั้น คอลัมน์เก่าอาจยังคง collation เดิมอยู่