Để 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 COLUMNcó 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
FIRSThoặcAFTER col_nameđể chỉ định vị trí. - Trên bảng lớn,
ALTER TABLEcó thể khóa bảng lâu (metadata lock). MySQL 8.0+ hỗ trợALGORITHM=INSTANTcho một số phép thêm cột (có DEFAULT, không phải khóa chính).