檢查(CHECK)約束允許條件來檢查被輸入到一個記錄的值。如果條件計算結(jié)果為false,記錄違反了約束,則不會被存儲進入到表中。
例如,下面的SQL創(chuàng)建一個新的表名為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表已經(jīng)創(chuàng)建, 然后將CHECK約束添加到AGE列,使用類似如下的聲明:
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;