การเปลี่ยน Character Set ระดับคอลัมน์
ใช้คำสั่ง ALTER TABLE ... MODIFY พร้อมระบุ CHARACTER SET
รูปแบบคำสั่ง
ALTER TABLE yourTableName MODIFY yourColumnName type CHARACTER SET charset_name;
ตัวอย่าง: สร้างตารางและตรวจสอบ charset เริ่มต้น
mysql> CREATE TABLE setCharsetDemo (
-> FirstName VARCHAR(60)
-> );
Query OK, 0 rows affected (2.09 sec)
mysql> SHOW CREATE TABLE setCharsetDemo;
+----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | setCharsetDemo | CREATE TABLE `setcharsetdemo` (`FirstName` varchar(60) COLLATE utf8mb4_unicode_ci DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci | +----------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)
ค่าเริ่มต้นคือ utf8mb4 (รองรับ emoji และ unicode เต็มรูปแบบ)
เปลี่ยนเป็น utf8 (utf8mb3)
mysql> ALTER TABLE setCharsetDemo
-> MODIFY FirstName VARCHAR(60) CHARACTER SET utf8;
Query OK, 0 rows affected, 1 warning (2.81 sec)
ตรวจสอบหลังเปลี่ยน
mysql> SHOW CREATE TABLE setCharsetDemo;
+----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | setCharsetDemo | CREATE TABLE `setcharsetdemo` (`FirstName` varchar(60) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci | +----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)
เห็นว่าคอลัมน์ FirstName ใช้ CHARACTER SET utf8 แล้ว ส่วนตารางยังคงเป็น utf8mb4
Character Sets ยอดนิยม:
utf8mb4- Unicode เต็มรูปแบบ (แนะนำ)utf8/utf8mb3- Unicode บางส่วน (ไม่รองรับ emoji บางตัว)latin1- Western European (เก่า)tis620- ภาษาไทย (เก่า ไม่แนะนำ)
คำแนะนำ: ใหม่ๆ ควรใช้ utf8mb4 เสมอ เพื่อรองรับภาษาทุกภาษาและ emoji