Бележка на автора :първите две части на този отговор са неправилни. Мислех, че MySQL поддържа CHECK
ограничения и не. Все още не. За да ограничите колоните до прост списък със стойности, използвайте ENUM
подход в края на този отговор. Ако логиката е по-сложна (диапазон от стойности, стойност, базирана на друга колона и т.н.), единствената опция на MySQL е тригер.
Нуждаете се от CHECK
ограничение, ако е INT
:
CREATE TABLE Site (
SiteID INT,
CONSTRAINT SiteID_Ck CHECK (SiteID IN (1, 2, 3, 4)),
... and the rest
Или:
CREATE TABLE Site (
SiteID INT,
CONSTRAINT SiteID_Ck CHECK (SiteID BETWEEN 1 AND 4),
... and the rest
Или ако можете да живеете с низ SiteID, тогава:
CREATE TABLE Site (
SiteID ENUM('1', '2', '3', '4'),
... and the rest