CHECK约束,条件检查被输入的值。如果条件计算为false,记录中的列的值违反了约束,从而不能写入到表中。
例如,下面的SQL语句创建一个新的表名为CUSTOMERS,并增加了5列。随着年龄的增长列在这里,我们添加了一个查看,这样就可以没有任何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 ck_myCheckConstraint CHECK(AGE >= 18);
要删除CHECK约束,请使用下面的SQL语句(MySQL中不能使用这样的语法):
ALTER TABLE CUSTOMERS DROP CONSTRAINT ck_myCheckConstraint;