SQLCHECKキーワード
チェック
制約はCHECK
、列に配置できる値を制限します。
CREATETABLEのSQLチェック
次のSQLは、「Persons」テーブルの作成時に「Age」列にCHECK制約を作成します。CHECK制約は、18歳未満の人がいないことを保証します。
MySQL:
CREATE TABLE Persons
(
Age int,
CHECK (Age>=18)
);
SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
Age int CHECK (Age>=18)
);
CHECK制約の命名を許可し、複数の列にCHECK制約を定義するには、次のSQL構文を使用します。
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons
(
Age int,
City varchar(255),
CONSTRAINT CHK_Person CHECK (Age>=18 AND City='Sandnes')
);
ALTERTABLEでのSQLチェック
テーブルがすでに作成されているときに「Age」列にCHECK制約を作成するには、次のSQLを使用します。
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CHECK (Age>=18);
CHECK制約の命名を許可し、複数の列にCHECK制約を定義するには、次のSQL構文を使用します。
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT CHK_PersonAge CHECK (Age>=18 AND City='Sandnes');
チェック制約を削除する
CHECK制約を削除するには、次のSQLを使用します。
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT CHK_PersonAge;
MySQL:
ALTER TABLE Persons
DROP CHECK CHK_PersonAge;