CHECK約束限制了可以放置在一個(gè)列中的值。
創(chuàng)建表"Persons"時(shí),以下SQL在"Age"列上創(chuàng)建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約束,并在多個(gè)列上定義CHECK約束,請(qǐng)使用以下SQL語法:
MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Persons (
Age int,
City varchar(255),
CONSTRAINT CHK_Person CHECK (Age>=18 AND City='Sandnes')
);
要在"Age"已經(jīng)創(chuàng)建表之后在列上創(chuàng)建CHECK約束,請(qǐng)使用以下SQL:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CHECK (Age>=18);
若要命名CHECK約束,并在多個(gè)列上定義CHECK約束,請(qǐng)使用以下SQL語法:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE Persons
ADD CONSTRAINT CHK_PersonAge CHECK (Age>=18 AND City='Sandnes');
要?jiǎng)h除CHECK約束,請(qǐng)使用以下SQL:
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT CHK_PersonAge;
MySQL:
ALTER TABLE Persons
DROP CHECK CHK_PersonAge;