检查(CHECK)约束允许条件来检查被输入到一个记录的值。如果条件计算结果为false,记录违反了约束,则不会被存储进入到表中。
示例:
例如,下面的SQL创建一个新的表名为CUSTOMERS,并添加了五列。在这里,我们添加使用AGE列的检查,这样就不能有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表已经创建, 然后将CHECK约束添加到AGE列,使用类似如下的声明:
ALTER TABLE CUSTOMERS MODIFY AGE INT NOT NULL CHECK (AGE >= 18 );
还可以使用下面的语法,它支持命名的多个列的约束:
ALTER TABLE CUSTOMERS ADD CONSTRAINT myCheckConstraint CHECK(AGE >= 18);
删除CHECK约束:
要删除CHECK约束,使用下面的SQL语法。此语法不在MySQL中使用:
ALTER TABLE CUSTOMERS DROP CONSTRAINT myCheckConstraint;