Poznámka autora :první dvě části této odpovědi jsou nesprávné. Myslel jsem, že MySQL podporuje CHECK
omezení a nestalo se tak. Stále ne. Chcete-li omezit sloupce na jednoduchý seznam hodnot, použijte ENUM
přístup na konci této odpovědi. Pokud je logika složitější (rozsah hodnot, hodnota založená na jiném sloupci atd.), jedinou možností MySQL je spouštěč.
Potřebujete CHECK
omezení, pokud se jedná o INT
:
CREATE TABLE Site (
SiteID INT,
CONSTRAINT SiteID_Ck CHECK (SiteID IN (1, 2, 3, 4)),
... and the rest
Nebo:
CREATE TABLE Site (
SiteID INT,
CONSTRAINT SiteID_Ck CHECK (SiteID BETWEEN 1 AND 4),
... and the rest
Nebo pokud můžete žít s řetězcem SiteID, pak:
CREATE TABLE Site (
SiteID ENUM('1', '2', '3', '4'),
... and the rest