Anmerkung des Autors :Die ersten beiden Teile dieser Antwort sind falsch. Ich dachte, MySQL unterstützt CHECK
Einschränkungen und es tat es nicht. Immer noch nicht. Um Spalten auf eine einfache Werteliste zu beschränken, verwenden Sie ENUM
Ansatz am Ende dieser Antwort. Wenn die Logik komplizierter ist (Wertebereich, Wert basiert auf einer anderen Spalte usw.), ist die einzige MySQL-Option ein Trigger.
Sie benötigen einen CHECK
Einschränkung, wenn es sich um einen INT
handelt :
CREATE TABLE Site (
SiteID INT,
CONSTRAINT SiteID_Ck CHECK (SiteID IN (1, 2, 3, 4)),
... and the rest
Oder:
CREATE TABLE Site (
SiteID INT,
CONSTRAINT SiteID_Ck CHECK (SiteID BETWEEN 1 AND 4),
... and the rest
Oder wenn Sie mit einer Zeichenfolge SiteID leben können, dann:
CREATE TABLE Site (
SiteID ENUM('1', '2', '3', '4'),
... and the rest