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

วิธีเปลี่ยนหลายคอลัมน์พร้อมกันในคำสั่ง ALTER TABLE เดียวของ MySQL

การใช้ CHANGE ใน ALTER TABLE หลายคอลัมน์

ใน MySQL คุณสามารถเปลี่ยนชื่อและ/หรือชนิดข้อมูลของหลายคอลัมน์พร้อมกันในคำสั่ง ALTER TABLE เดียวได้โดยใช้ CHANGE คั่นด้วยจุลภาค

รูปแบบคำสั่ง

ALTER TABLE your_table_name
CHANGE old_col1 new_col1 data_type,
CHANGE old_col2 new_col2 data_type,
...;

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

1. สร้างตารางเดิม

CREATE TABLE AlterMultipleColumns (
    Id INT,
    Name VARCHAR(200)
);

2. เปลี่ยนชื่อและชนิดข้อมูลพร้อมกัน

ALTER TABLE AlterMultipleColumns
CHANGE Id StudentId VARCHAR(10),
CHANGE Name StudentName VARCHAR(100);

3. ตรวจสอบผลลัพธ์

DESC AlterMultipleColumns;
FieldTypeNullKeyDefault
StudentIdvarchar(10)YESNULL
StudentNamevarchar(100)YESNULL

ความแตกต่าง: CHANGE vs MODIFY

คำสั่งเปลี่ยนชื่อได้เปลี่ยนชนิดข้อมูลได้เปลี่ยนลำดับได้ (AFTER/FIRST)
CHANGE✅ ใช่ (ต้องระบุชื่อใหม่)✅ ใช่✅ ใช่
MODIFY❌ ไม่ได้✅ ใช่✅ ใช่

ตัวอย่างเพิ่มเติม: เปลี่ยนหลายอย่างพร้อมกัน

ALTER TABLE employees
CHANGE emp_id employee_id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST,
CHANGE emp_name full_name VARCHAR(150) NOT NULL AFTER employee_id,
CHANGE salary monthly_salary DECIMAL(10,2) DEFAULT 0,
MODIFY COLUMN department_id SMALLINT UNSIGNED DEFAULT 1,
ADD COLUMN hire_date DATE AFTER monthly_salary;

ข้อควรระวัง

  • ⚡ Table Rebuild: การ CHANGE/MODIFY คอลัมน์จะทำให้ตาราง Rebuild ทั้งตาราง (Lock, Time, Disk Space)
  • 🔒 ต้องระบุ Definition ครบถ้วน (Data Type, Length, Nullable, Default, Auto Increment, Comment)
  • 📝 ใช้ SHOW CREATE TABLE ดู Definition เดิมก่อนแก้ไข
  • 🧪 ทดสอบใน Staging ก่อน Production เสมอ
  • 💡 MySQL 8.0+ รองรับ ALGORITHM=INSTANT สำหรับบาง操作 (ADD COLUMN AT END, RENAME COLUMN)