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

Thêm giá trị mới cho cột ENUM trong MySQL?

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).