SQL CHECK 关键字
CHECK
CHECK
约束限制可以放置在列中的值。
建表时创建 CHECK 约束
下面的 SQL 在 "Persons" 表创建时, 就为 "Age" 列创建了 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')
);
修改表结构创建 CHECK 约束
在已存在的 "Persons" 表上, 为 "Age" 列创建 CHECK 约束:
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 约束
要删除 CHECK
约束,请使用以下 SQL:
SQL Server / Oracle / MS Access:
ALTER TABLE Persons
DROP CONSTRAINT CHK_PersonAge;
MySQL:
ALTER TABLE Persons
DROP CHECK CHK_PersonAge;