SQL CHECK 关键字

CHECK

CHECK 约束限制可以放置在列中的值。


建表时创建 CHECK 约束

下面的 SQL 在 "Persons" 表创建时, 就为 "Age" 列创建了 CHECK 约束, 确保您不能有任何 18 岁以下的人:

MySQL:

  1. CREATE TABLE Persons(
  2. Age int,
  3. CHECK (Age>=18)
  4. );

SQL Server / Oracle / MS Access:

  1. CREATE TABLE Persons(
  2. Age int CHECK (Age>=18)
  3. );

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

MySQL / SQL Server / Oracle / MS Access:

  1. CREATE TABLE Persons(
  2. Age int,
  3. City varchar(255),
  4. CONSTRAINT CHK_Person CHECK (Age>=18 AND City='Sandnes')
  5. );

修改表结构创建 CHECK 约束

在已存在的 "Persons" 表上, 为 "Age" 列创建 CHECK 约束:

MySQL / SQL Server / Oracle / MS Access:

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

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

MySQL / SQL Server / Oracle / MS Access:

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

删除 CHECK 约束

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

SQL Server / Oracle / MS Access:

  1. ALTER TABLE Persons
  2. DROP CONSTRAINT CHK_PersonAge;

MySQL:

  1. ALTER TABLE Persons
  2. DROP CHECK CHK_PersonAge;

分类导航