Dưới đây là các hạn chế của ENUM trong MySQL:
Giá trị liệt kê không thể là biểu thức
Chúng ta không thể sử dụng biểu thức làm thành viên liệt kê, ngay cả biểu thức evaluate thành giá trị chuỗi.
Ví dụ
Ví dụ, chúng ta có thể dùng hàm CONCAT dẫn đến evaluate thành chuỗi.
Truy vấn sau sẽ không hoạt động:
mysql> CREATE TABLE limit_enum(number ENUM('one', 'two', CONCAT('t', 'wo')));
Không thể dùng biến người dùng làm thành viên liệt kê
Hạn chế khác là không thể sử dụng biến người dùng làm thành viên liệt kê. Do đó truy vấn sau sẽ không hoạt động:
mysql> SET @mynumber = 'two';
Query OK, 0 rows affected (0.04 sec)
mysql> CREATE TABLE limit_enum(number ENUM('one', @mynumber, 'three'));