Dùng ALTER TABLE ... MODIFY COLUMN ... ENUM(...) và phải liệt kê lại toàn bộ giá trị cũ + giá trị mới.
Cú pháp
ALTER TABLE ten_bang
MODIFY COLUMN cot_enum ENUM('gia_tri_cu_1','gia_tri_cu_2',...,'gia_tri_moi_1','gia_tri_moi_2',...);
Ví dụ minh họa
Tạo bảng AddingNewValueToEnumColumn:
CREATE TABLE AddingNewValueToEnumColumn (
Id INT NOT NULL AUTO_INCREMENT,
Colors ENUM('RED','GREEN','BLUE'),
PRIMARY KEY (Id)
);
Xem DDL hiện tại:
SHOW CREATE TABLE AddingNewValueToEnumColumn\G
Colors enum('RED','GREEN','BLUE') DEFAULT NULL
Thêm 3 giá trị mới: YELLOW, ORANGE, PINK
ALTER TABLE AddingNewValueToEnumColumn
MODIFY COLUMN Colors ENUM('RED','GREEN','BLUE','YELLOW','ORANGE','PINK');
Kiểm tra lại (DESC):
+--------+-----------------------------------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+-----------------------------------------------------+------+-----+---------+----------------+
| Id | int(11) | NO | PRI | NULL | auto_increment |
| Colors | enum('RED','GREEN','BLUE','YELLOW','ORANGE','PINK') | YES | | NULL | |
+--------+-----------------------------------------------------+------+-----+---------+----------------+
⚠️ Quan trọng: MySQL không hỗ trợ ADD VALUE cho ENUM. Phải khai báo lại toàn bộ danh sách. Nên backup dữ liệu trước khi thay đổi.