SQL CHECK 约束
SQL CHECK 约束
CHECK
约束用于限制可以放置在列中的值的范围。
如果为一个列定义 CHECK
约束,则该列只允许特定值。
如果为一个表定义 CHECK
约束,则可以根据行中其他列的值来限制某些列中的值。
SQL 在 CREATE TABLE 上创建 CHECK
以下 SQL 在创建 "Persons" 表时,在 "Age" 列上创建一个 CHECK
约束。 CHECK
约束确保一个人的年龄必须是 18 岁或以上。
MySQL
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
CHECK (Age>=18)
);
SQL Server / Oracle / MS Access
CREATE TABLE Persons (
ID int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int CHECK (Age>=18)
);
要允许命名 CHECK
约束,以及为多个列定义 CHECK
约束,请使用以下 SQL 语法
MySQL / SQL Server / Oracle / MS Access
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')
);
SQL 在 ALTER TABLE 上创建 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');
DROP a CHECK Constraint (删除 CHECK 约束)
要删除 CHECK
约束,请使用以下 SQL
SQL Server / Oracle / MS Access
ALTER TABLE Persons
DROP CONSTRAINT CHK_PersonAge;
MySQL
ALTER TABLE Persons
DROP CHECK CHK_PersonAge;