MySQLチェック制約
MySQLチェック制約
CHECK
制約は、列に配置できる値の範囲を制限するために使用されます。
列に制約を定義するCHECK
と、この列には特定の値のみが許可されます。
テーブルに制約を定義するCHECK
と、その行の他の列の値に基づいて、特定の列の値を制限できます。
CREATETABLEを確認してください
次のSQLはCHECK
、「Persons」テーブルの作成時に「Age」列に制約を作成します。CHECK
制約により、人の年齢は18歳以上でなければなりません。
CREATE TABLE Persons
(
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
CHECK (Age>=18)
);
制約の命名を許可し、複数の列に制約CHECK
を定義する
CHECK
には、次のSQL構文を使用します。
CREATE TABLE Persons
(
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
City varchar(255),
CONSTRAINT CHK_Person CHECK (Age>=18 AND City='Sandnes')
);
ALTERTABLEを確認してください
CHECK
テーブルがすでに作成されているときに「Age」列に制約を作成するには、次のSQLを使用します。
ALTER TABLE Persons
ADD CHECK (Age>=18);
制約の命名を許可し、複数の列に制約CHECK
を定義する
CHECK
には、次のSQL構文を使用します。
ALTER TABLE Persons
ADD CONSTRAINT CHK_PersonAge CHECK (Age>=18 AND City='Sandnes');
チェック制約を削除する
制約を削除するCHECK
には、次のSQLを使用します。
ALTER TABLE Persons
DROP CHECK CHK_PersonAge;