SQL - CHECK 约束

  • 简述

    CHECK 约束启用条件来检查输入到记录中的值。如果条件评估为假,则记录违反约束并且不会进入表。

    例子

    例如,以下程序创建一个名为 CUSTOMERS 的新表并添加五列。在这里,我们添加了一个带有 AGE 的 CHECK 列,这样您就不能有任何 18 岁以下的客户。
    
    CREATE TABLE CUSTOMERS(
       ID   INT              NOT NULL,
       NAME VARCHAR (20)     NOT NULL,
       AGE  INT              NOT NULL CHECK (AGE >= 18),
       ADDRESS  CHAR (25) ,
       SALARY   DECIMAL (18, 2),       
       PRIMARY KEY (ID)
    );
    
    如果已经创建了 CUSTOMERS 表,那么要向 AGE 列添加 CHECK 约束,您可以编写如下所示的语句。
    
    ALTER TABLE CUSTOMERS
       MODIFY AGE INT NOT NULL CHECK (AGE >= 18 );
    
    您还可以使用以下语法,它也支持在多列中命名约束 -
    
    ALTER TABLE CUSTOMERS
       ADD CONSTRAINT myCheckConstraint CHECK(AGE >= 18);
    
  • 删除检查约束

    要删除 CHECK 约束,请使用以下 SQL 语法。此语法不适用于 MySQL。
    
    ALTER TABLE CUSTOMERS
       DROP CONSTRAINT myCheckConstraint;