การเปลี่ยนชนิดข้อมูลหลายคอลัมน์พร้อมกันใน MySQL
ใน MySQL คุณสามารถเปลี่ยนชนิดข้อมูล (data type) ของหลายคอลัมน์ได้ในคำสั่ง ALTER TABLE เดียว โดยใช้คำสั่ง MODIFY COLUMN หลายครั้ง คั่นด้วยเครื่องหมายจุลภาค (comma)
รูปแบบคำสั่ง (Syntax)
ALTER TABLE yourTableName
MODIFY COLUMN yourColumnName1 yourDataType1,
MODIFY COLUMN yourColumnName2 yourDataType2,
...
MODIFY COLUMN yourColumnNameN yourDataTypeN;
ตัวอย่างการใช้งาน
สร้างตารางตัวอย่างชื่อ DemoTable:
CREATE TABLE DemoTable (
Id VARCHAR(100),
FirstName TEXT,
LastName TEXT
);
ตรวจสอบโครงสร้างตารางก่อนเปลี่ยนแปลง:
DESC DemoTable;
ผลลัพธ์:
+-----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| Id | varchar(100) | YES | | NULL | |
| FirstName | text | YES | | NULL | |
| LastName | text | YES | | NULL | |
+-----------+--------------+------+-----+---------+-------+
เปลี่ยนชนิดข้อมูลของคอลัมน์ Id, FirstName และ LastName พร้อมกัน:
ALTER TABLE DemoTable
MODIFY COLUMN Id INT,
MODIFY COLUMN FirstName VARCHAR(50),
MODIFY COLUMN LastName VARCHAR(50);
ตรวจสอบโครงสร้างตารางอีกครั้งหลังจากเปลี่ยนแปลง:
DESC DemoTable;
ผลลัพธ์:
+-----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| Id | int(11) | YES | | NULL | |
| FirstName | varchar(50) | YES | | NULL | |
| LastName | varchar(50) | YES | | NULL | |
+-----------+-------------+------+-----+---------+-------+
ข้อสังเกตสำคัญ
- คำสั่ง MODIFY COLUMN ต้องระบุชื่อคอลัมน์และชนิดข้อมูลใหม่ครบถ้วน
- การเปลี่ยนชนิดข้อมูลอาจทำให้ข้อมูลเดิมสูญหายหรือถูกตัดทอน (truncate) ได้ หากชนิดข้อมูลใหม่รองรับขนาดน้อยกว่าเดิม
- ควรสำรองข้อมูล (backup) ก่อนทำการเปลี่ยนแปลงโครงสร้างตารางในระบบจริง (production)