Nota dell'autore :le prime due parti di questa risposta non sono corrette. Pensavo che MySQL supportasse CHECK
vincoli e così non è stato. Ancora no. Per limitare le colonne a un semplice elenco di valori, utilizza ENUM
approccio alla fine di questa risposta. Se la logica è più complicata (intervallo di valori, valore basato su un'altra colonna, ecc.), l'unica opzione MySQL è un trigger.
Hai bisogno di un CHECK
vincolo se è un INT
:
CREATE TABLE Site (
SiteID INT,
CONSTRAINT SiteID_Ck CHECK (SiteID IN (1, 2, 3, 4)),
... and the rest
Oppure:
CREATE TABLE Site (
SiteID INT,
CONSTRAINT SiteID_Ck CHECK (SiteID BETWEEN 1 AND 4),
... and the rest
O se puoi vivere con una stringa SiteID allora:
CREATE TABLE Site (
SiteID ENUM('1', '2', '3', '4'),
... and the rest