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

MySQL เปลี่ยนลำดับคอลัมน์ด้วย ALTER TABLE ... MODIFY ... AFTER

สามารถเปลี่ยนลำดับคอลัมน์ในตารางที่มีอยู่แล้วได้ โดยใช้คำสั่ง ALTER TABLE ... MODIFY COLUMN ... AFTER ...

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

1. สร้างตารางเดิม (ลำดับ: Age, Name, CountryName)

mysql> CREATE TABLE DemoTable (
    `Student_Key_Age` INT,
    `Student_Key_Name` VARCHAR(20),
    `Student_Key_CountryName` VARCHAR(20)
);
Query OK, 0 rows affected (0.64 sec)

2. เปลี่ยนลำดับ: ย้าย Age ให้อยู่หลัง Name

mysql> ALTER TABLE DemoTable 
    MODIFY COLUMN `Student_Key_Age` INT AFTER `Student_Key_Name`;
Query OK, 0 rows affected (1.15 sec)
Records: 0  Duplicates: 0  Warnings: 0

3. ตรวจสอบโครงสร้างตารางหลังเปลี่ยน

mysql> DESC DemoTable;
+-------------------------+-------------+------+-----+---------+-------+
| Field                   | Type        | Null | Key | Default | Extra |
+-------------------------+-------------+------+-----+---------+-------+
| Student_Key_Name        | varchar(20) | YES  |     | NULL    |       |
| Student_Key_Age         | int(11)     | YES  |     | NULL    |       |
| Student_Key_CountryName | varchar(20) | YES  |     | NULL    |       |
+-------------------------+-------------+------+-----+---------+-------+

ไวยากรณ์ (Syntax)

ALTER TABLE table_name
MODIFY COLUMN column_name column_definition
[FIRST | AFTER column_name]

ตัวเลือกตำแหน่ง:

  • FIRST : ย้ายคอลัมน์ไปเป็นคอลัมน์แรก
  • AFTER column_name : ย้ายคอลัมน์ไปวางหลังคอลัมน์ที่ระบุ

ข้อควรระวัง

  • ต้องระบุ นิยามคอลัมน์เต็มรูปแบบ (Data Type, Length, Null/Not Null, Default ฯลฯ) ใหม่ทั้งหมดในคำสั่ง MODIFY
  • การเปลี่ยนลำดับคอลัมน์อาจใช้เวลานานถ้าตารางมีข้อมูลมาก (ต้อง rebuild ตาราง)
  • ไม่ส่งผลต่อข้อมูลที่มีอยู่ แต่ลำดับใน SELECT * และ INSERT ที่ไม่ระบุคอลัมน์จะเปลี่ยนไปตามลำดับใหม่

สรุป

ใช้ ALTER TABLE ... MODIFY COLUMN ... AFTER ... เพื่อเปลี่ยนลำดับคอลัมน์ได้ ต้องระบุนิยามคอลัมน์ครบถ้วน และควรทดสอบก่อนใช้กับ Production