ย้ายตำแหน่งคอลัมน์ในตาราง MySQL โดยคงข้อมูลไว้
ใช้ ALTER TABLE ... MODIFY COLUMN ... AFTER column_name เพื่อเปลี่ยนลำดับคอลัมน์
รูปแบบคำสั่ง (Syntax)
ALTER TABLE yourTableName
MODIFY yourColumnName data_type AFTER otherColumnName;
ตัวอย่างการใช้งาน
สร้างตาราง changeColumnPositionDemo:
CREATE TABLE changeColumnPositionDemo (
StudentId INT,
StudentAddress VARCHAR(200),
StudentAge INT,
StudentName VARCHAR(200)
);
ลำดับเดิม: StudentId → StudentAddress → StudentAge → StudentName
เพิ่มข้อมูล:
INSERT INTO changeColumnPositionDemo VALUES
(101, 'US', 23, 'Johnson'),
(102, 'UK', 20, 'John'),
(103, 'US', 22, 'Carol'),
(104, 'UK', 19, 'Sam');
ย้าย StudentAddress ให้อยู่หลัง StudentAge:
ALTER TABLE changeColumnPositionDemo
MODIFY StudentAddress VARCHAR(200) AFTER StudentAge;
ลำดับใหม่: StudentId → StudentAge → StudentAddress → StudentName
ผลลัพธ์หลังย้าย:
| StudentId | StudentAge | StudentAddress | StudentName |
|---|---|---|---|
| 101 | 23 | US | Johnson |
| 102 | 20 | UK | John |
| 103 | 22 | US | Carol |
| 104 | 19 | UK | Sam |
ตัวเลือก AFTER และ FIRST
AFTER column_name- วางหลังคอลัมน์ที่ระบุFIRST- วางเป็นคอลัมน์แรกสุด- ไม่ระบุ = วางท้ายสุด
ข้อควรระวัง: ตารางใหญ่ อาจ Lock นาน ใช้ pt-online-schema-change (Percona Toolkit) สำหรับ Production