内容

SQL CHECK 约束:主要提示

  • 需要此约束才能限制列中可能存在的值范围

  • 在定义对单个列的约束时,它只允许对该列使用特定值

  • 在定义表的约束时,它将通过基于同一行中不同列的值来限制特定列的

选中创建表

下面的代码示例在“Person”表的“P_Ids”列中生成约束 CHECK。约束定义列只能有大于 0 的整数。

MySQL的:

复制

CREATE TABLE Person
(
P_Ids int NOT NULL,
LName varchar(255) NOT NULL,
FName varchar(255),
AddressID varchar(255),
CityID varchar(255),CHECK (P_Ids>0)
)

MS Access/SQL Server/甲骨文:

复制

CREATE TABLE Person
(
P_Ids int NOT NULL CHECK (P_Ids>),
LName varchar(255) NOT NULL,
FName varchar(255),
AddressID varchar(255),
CityID varchar(255)
)

为了能够将约束命名为 CHECK,并在各种列上定义它,下面的示例显示了语法:

MS Access / SQL Server / Oracle / MySQL:

复制

CREATE TABLE Person
(
P_Ids int NOT NULL,
LName varchar(255) NOT NULL,
FName varchar(255),
AddressID varchar(255),
CityID varchar(255),CONSTRAINT ck_Person CHECK (P_Ids>0 AND CityID='paris')
)

检查更改表

在生成表后创建约束 CHECK 时:

MS Access / SQL Server / Oracle / MySQL:

复制

ALTER TABLE PersonADD CHECK (P_Ids>0)

为了能够将约束命名为 CHECK,并在各种列上定义它,下面的示例显示了语法:

MS Access / SQL Server / MySQL / Oracle:

复制

ALTER TABLE PersonADD CONSTRAINT ck_Person CHECK (P_Ids>0 AND CityID='Paris')

DROP CHECK:示例

下面的代码示例演示如何删除约束 CHECK:

SQL Server/MS Access/Oracle:

复制

ALTER TABLE PersonDROP CONSTRAINT ck_Person

MySQL的:

复制

ALTER TABLE PersonDROP CHECK CK_PersonsAge;