Ghi chú của tác giả :hai phần đầu tiên của câu trả lời này không chính xác. Tôi nghĩ MySQL hỗ trợ CHECK
hạn chế và nó đã không. Vẫn không. Để giới hạn các cột trong một danh sách giá trị đơn giản, hãy sử dụng ENUM
cách tiếp cận ở cuối câu trả lời này. Nếu logic phức tạp hơn (phạm vi giá trị, giá trị dựa trên cột khác, v.v.), thì tùy chọn MySQL duy nhất là trình kích hoạt.
Bạn cần CHECK
ràng buộc nếu đó là một INT
:
CREATE TABLE Site (
SiteID INT,
CONSTRAINT SiteID_Ck CHECK (SiteID IN (1, 2, 3, 4)),
... and the rest
Hoặc:
CREATE TABLE Site (
SiteID INT,
CONSTRAINT SiteID_Ck CHECK (SiteID BETWEEN 1 AND 4),
... and the rest
Hoặc nếu bạn có thể sống với một SiteID chuỗi thì:
CREATE TABLE Site (
SiteID ENUM('1', '2', '3', '4'),
... and the rest