CHECK 制約は、列内の値の範囲を制限するために使用されます。
単一の列に CHECK 制約が定義されている場合、その列には特定の値のみが許可されます。
テーブルに CHECK 制約が定義されている場合、その制約は特定の列の値を制限します。
以下の SQL は、「persons」テーブルの作成時に「Id_P」列に CHECK 制約を作成します。 CHECK 制約では、「Id_P」列には 0 より大きい整数のみを含める必要があると規定されています。
CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CHECK (Id_P>0) )
CREATE TABLE Persons ( Id_P int NOT NULL CHECK (Id_P>0), LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255) )
CHECK 制約に名前を付け、複数の列に CHECK 制約を定義する必要がある場合は、次の SQL 構文を使用します。
CREATE TABLE Persons ( Id_P int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes') )
テーブルがすでに存在する場合に「Id_P」列に CHECK 制約を作成する場合は、次の SQL を使用します。
ALTER TABLE Persons ADD CHECK (Id_P>0)
CHECK 制約に名前を付け、複数の列に CHECK 制約を定義する必要がある場合は、次の SQL 構文を使用します。
ALTER TABLE Persons ADD CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
CHECK 制約を削除するには、次の SQL を使用します。
ALTER TABLE Persons DROP CONSTRAINT chk_Person
ALTER TABLE Persons DROP CHECK chk_Person