SQL CHECK 约束
SQL CHECK 约束
CHECK 约束用于确保列中的值满足特定条件。
CHECK 约束将数据评估为 TRUE 或 FALSE。如果数据评估为 TRUE,则操作正常进行。如果数据评估为 FALSE,则整个 INSERT 或 UPDATE 操作将被中止,并引发错误。
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;