Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cách thêm cột vào bảng MySQL dùng ALTER TABLE

Để thêm cột mới vào bảng đã có, dùng ALTER TABLE ... ADD COLUMN.

Cú pháp

ALTER TABLE yourTableName
ADD COLUMN yourColumnName yourDataType DEFAULT yourDefaultValue;

Ví dụ minh họa

Tạo bảng ban đầu:

CREATE TABLE alterTableDemo (
    Id INT,
    Name VARCHAR(10)
);

Kiểm tra cấu trúc (DESC):

+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| Id    | int(11)     | YES  |     | NULL    |       |
| Name  | varchar(10) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

Thêm cột Age mặc định 18:

ALTER TABLE alterTableDemo ADD COLUMN Age INT DEFAULT 18;

Cấu trúc mới:

+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| Id    | int(11)     | YES  |     | NULL    |       |
| Name  | varchar(10) | YES  |     | NULL    |       |
| Age   | int(11)     | YES  |     | 18      |       |
+-------+-------------+------+-----+---------+-------+

Chèn dữ liệu:

INSERT INTO alterTableDemo (Id, Name, Age) VALUES (100, 'Chris', 24);
INSERT INTO alterTableDemo (Id, Name) VALUES (101, 'Robert'); -- Age mặc định 18

Kết quả:

+------+--------+------+
| Id   | Name   | Age  |
+------+--------+------+
| 100  | Chris  | 24   |
| 101  | Robert | 18   |
+------+--------+------+

Lưu ý:

  • ADD COLUMN có thể bỏ từ COLUMN: ALTER TABLE t ADD Age INT DEFAULT 18.
  • Thêm nhiều cột cùng lúc: ADD Col1 INT, ADD Col2 VARCHAR(10).
  • Vị trí cột mới: mặc định cuối bảng. Dùng FIRST hoặc AFTER col_name để chỉ định vị trí.
  • Trên bảng lớn, ALTER TABLE có thể khóa bảng lâu (metadata lock). MySQL 8.0+ hỗ trợ ALGORITHM=INSTANT cho một số phép thêm cột (có DEFAULT, không phải khóa chính).