Sử dụng ALTER TABLE ... MODIFY COLUMN liệt kê lại toàn bộ giá trị cũ + giá trị mới.
Cú pháp:
ALTER TABLE ten_bang MODIFY COLUMN ten_cot ENUM('gia_tri_cu_1','gia_tri_cu_2',...,'gia_tri_moi_1','gia_tri_moi_2',...);
Ví dụ:
CREATE TABLE EnumDemo (AllColors ENUM('RED','GREEN'));
-- Thêm YELLOW, BLUE
ALTER TABLE EnumDemo MODIFY COLUMN AllColors ENUM('RED','GREEN','YELLOW','BLUE');
Kiểm tra cấu trúc:
SHOW CREATE TABLE EnumDemo;
Kết quả
CREATE TABLE `enumdemo` (
`AllColors` enum('RED','GREEN','YELLOW','BLUE') DEFAULT NULL
) ENGINE=InnoDB ...
Lưu ý quan trọng:
- Phải liệt kê tất cả giá trị cũ theo đúng thứ tự, sau đó thêm giá trị mới.
- Không thể dùng
ADDđơn lẻ cho ENUM. - Thứ tự giá trị ENUM quyết định thứ tự sắp xếp (ORDER BY).
- Với bảng lớn, thao tác này có thể khóa bảng lâu (rebuild table).