SQL CHECK 关键字

CHECK

CHECK 约束用于限制可以放入列中的值。

SQL CHECK on CREATE TABLE

以下 SQL 在创建 "Persons" 表时在 "Age" 列上创建一个 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 约束,并在多个列上定义 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')
);

在 ALTER TABLE 上的 SQL CHECK

如果表已经创建,要在 "Age" 列上创建一个 CHECK 约束,请使用以下 SQL:

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;