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

เปลี่ยนตำแหน่งคอลัมน์ใน MySQL ไม่สูญเสียข้อมูลด้วย ALTER TABLE ... AFTER

ย้ายตำแหน่งคอลัมน์ในตาราง 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

ผลลัพธ์หลังย้าย:

StudentIdStudentAgeStudentAddressStudentName
10123USJohnson
10220UKJohn
10322USCarol
10419UKSam

ตัวเลือก AFTER และ FIRST

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

ข้อควรระวัง: ตารางใหญ่ อาจ Lock นาน ใช้ pt-online-schema-change (Percona Toolkit) สำหรับ Production