作者のメモ :この回答の最初の2つの部分は正しくありません。 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