MySQL CHECK 约束

MySQL CHECK 约束

CHECK 约束用于限制列中可以放置的值范围。

如果您在列上定义 CHECK 约束,它将只允许该列使用某些值。

如果您在表上定义 CHECK 约束,它可以根据行中其他列中的值限制某些列中的值。

在 CREATE TABLE 时创建 CHECK 约束

以下 SQL 在创建 "Persons" 表时在 "Age" 列上创建了 CHECK 约束。CHECK 约束确保人员的年龄必须为 18 岁或以上:

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

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

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

在 ALTER TABLE 时创建 CHECK

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

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

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

ALTER TABLE Persons
ADD CONSTRAINT CHK_PersonAge CHECK (Age>=18 AND City='Sandnes');

删除 CHECK 约束

要删除 CHECK 约束,请使用以下 SQL:

ALTER TABLE Persons
DROP CHECK CHK_PersonAge;