SQL CHECK 制約
SQL CHECK 制約
CHECK制約はカラム内の値の範囲を制限するために使用されます。
単一のカラムに対してCHECK制約を定義した場合、そのカラムは特定の値のみを許可します。
表に対してCHECK制約を定義した場合、その制約は特定のカラムに対して値の制限を行います。
SQLのCREATE TABLEにおけるCHECK制約
以下のSQLは、"Persons"テーブルが作成された際に"Id_P"カラムに対してCHECK制約を作成します。CHECK制約は、"Id_P"カラムが0以上の整数のみを含むことを規定します。
MySQL:
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) )
SQL Server / Oracle / MS Access:
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 语法を使用してください:
MySQL / SQL Server / Oracle / MS Access:
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') )
ALTER TABLE 上の SQL CHECK 约束
既存のテーブルに対して "Id_P" 列に CHECK 约束を作成する場合、以下の SQL を使用してください:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons ADD CHECK (Id_P>0)
CHECK 约束に名前を付けたり、複数の列に対して CHECK 约束を定義する必要がある場合は、以下の SQL 语法を使用してください:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons ADD CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
CHECK 约束を取り消す
CHECK 约束を取り消すには、以下の SQL を使用してください:
SQL Server / Oracle / MS Access:
ALTER TABLE Persons DROP CONSTRAINT chk_Person
MySQL:
ALTER TABLE Persons DROP CHECK chk_Person