SQL CHECK 约束

SQL CHECK 约束

CHECK 约束用于确保列中的值满足特定条件。

CHECK 约束将数据评估为 TRUE 或 FALSE。如果数据评估为 TRUE,则操作正常进行。如果数据评估为 FALSE,则整个 INSERTUPDATE 操作将被中止,并引发错误。

CREATE TABLE 上的 CHECK 约束

以下 SQL 语句在创建 Persons 表时在 Age 列上创建了 CHECK 约束。

在这里,CHECK 约束确保 Age 列的值必须为 18 或以上:

CREATE TABLE Persons (
    ID int PRIMARY KEY,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int CHECK (Age >= 18)
);

为 CHECK 约束命名

要命名 CHECK 约束,并在多个列上定义 CHECK 约束,请使用以下 SQL 语法:

CREATE TABLE Persons (
    ID int PRIMARY KEY,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    City varchar(255),
    CONSTRAINT chk_PersonAge CHECK (Age >= 18 AND City = 'Sandnes')
);

ALTER TABLE 上的 CHECK 约束

当表已创建后,要在 Age 列上创建 CHECK 约束,请使用以下 SQL:

ALTER TABLE Persons
ADD CHECK (Age >= 18);

为 CHECK 约束命名

要为 CHECK 约束命名,并在多个列上定义 CHECK 约束,请使用以下 SQL 语法:

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;