Opmerking van de auteur :de eerste twee delen van dit antwoord zijn onjuist. Ik dacht dat MySQL CHECK
ondersteunde beperkingen en dat gebeurde niet. Nog steeds niet. Om kolommen te beperken tot een eenvoudige lijst met waarden, gebruikt u de ENUM
aanpak aan het einde van dit antwoord. Als de logica ingewikkelder is (bereik van waarden, waarde gebaseerd op een andere kolom, enz.), is de enige MySQL-optie een trigger.
U heeft een CHECK
nodig beperking als het een INT
. is :
CREATE TABLE Site (
SiteID INT,
CONSTRAINT SiteID_Ck CHECK (SiteID IN (1, 2, 3, 4)),
... and the rest
Of:
CREATE TABLE Site (
SiteID INT,
CONSTRAINT SiteID_Ck CHECK (SiteID BETWEEN 1 AND 4),
... and the rest
Of als je kunt leven met een string SiteID, dan:
CREATE TABLE Site (
SiteID ENUM('1', '2', '3', '4'),
... and the rest