SQLチェック
SQL CHECK 制約
CHECK 制約は、列内の値の範囲を制限するために使用されます。
単一の列に CHECK 制約を定義すると、その列には特定の値のみが許可されます。
テーブルに CHECK 制約を定義すると、その制約は行内の他の列の値に基づいて特定の列の値を制限します。
CREATE TABLE 時の SQL CHECK 制約
次の SQL は、「persons」テーブルの作成時に「P_Id」列に CHECK 制約を作成します。 CHECK 制約では、「P_Id」列には 0 より大きい整数のみを含める必要があると規定されています。
MySQL:
CREATE TABLE persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255) 、
check(p_id> 0)
)
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255) 、
check(p_id> 0)
)
sqlserver / oracle / ms access:
createテーブル担当者(
p_idint not null check(p_id> 0)、
lastnamevarchar(255)nol null null ,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
p_idint not null check(p_id> 0)、
lastnamevarchar(255)nol null null ,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
MySQL/SQL Server/Oracle/MS Access:
CREATE TABLE persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT chk_person CHECK (P_Id>0 AND City='Sandnes')
)
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT chk_person CHECK (P_Id>0 AND City='Sandnes')
)
ALTER TABLE 時の SQL CHECK 制約 テーブルの作成時に、「」を入力する必要がある場合は、 P_Id" 列に CHECK 制約を作成するには、次の SQL を使用してください:
MySQL/SQL Server/Oracle/MS Access:
ALTER TABLE persons
CHECK 制約に名前を付けて定義する必要があります。 複数の列に対する CHECK 制約の場合は、次の SQL 構文を使用してください: ADD CHECK (P_Id>0)
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT chk_person CHECK ( P_Id>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