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

เพิ่ม Column ในตาราง MySQL (ALTER TABLE ADD COLUMN)

ใช้ ALTER TABLE ... ADD COLUMN เพิ่มคอลัมน์ใหม่ (รองรับเพิ่มหลายคอลัมน์พร้อมกัน)

สร้างตาราง

mysql> CREATE TABLE AddingColumnNameDemo (Id INT, Name VARCHAR(100));

ดูโครงสร้างก่อน

mysql> DESC AddingColumnNameDemo;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| Id    | int(11)      | YES  |     | NULL    |       |
| Name  | varchar(100) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+

เพิ่ม Column Age และ Address

mysql> ALTER TABLE AddingColumnNameDemo 
    -> ADD COLUMN Age INT, 
    -> ADD COLUMN Address VARCHAR(300);
Query OK, 0 rows affected (0.53 sec)

ดูโครงสร้างหลังเพิ่ม

mysql> DESC AddingColumnNameDemo;
+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| Id      | int(11)      | YES  |     | NULL    |       |
| Name    | varchar(100) | YES  |     | NULL    |       |
| Age     | int(11)      | YES  |     | NULL    |       |
| Address | varchar(300) | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+

Syntax ครบถ้วน

ALTER TABLE table_name
  ADD COLUMN col_name data_type [DEFAULT value] [NULL|NOT NULL] [AUTO_INCREMENT] [COMMENT '...']
  [FIRST | AFTER existing_col_name];

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

  • FIRST → เพิ่มเป็นคอลัมน์แรก
  • AFTER col_name → เพิ่มหลังคอลัมน์ที่ระบุ
  • ไม่ระบุ → เพิ่มท้ายสุด (Default)
Performance: ADD COLUMN ที่ท้ายตาราง (Default) เร็วที่สุด (Metadata Only ใน MySQL 8.0+ Instant DDL) ADD COLUMN FIRST/AFTER ต้อง Rebuild Table (Lock/Slow)