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 PersonsADD CHECK (Age>=18);
要允许命名 CHECK 约束,并在多列上定义 CHECK 约束,请使用以下 SQL 语法:
MySQL / SQL Server / Oracle / MS Access:
ALTER TABLE PersonsADD CONSTRAINT CHK_PersonAge CHECK (Age>=18 AND City='Sandnes');
删除 CHECK 约束
要删除 CHECK 约束,请使用以下 SQL:
SQL Server / Oracle / MS Access:
ALTER TABLE PersonsDROP CONSTRAINT CHK_PersonAge;
MySQL:
ALTER TABLE PersonsDROP CHECK CHK_PersonAge;