位置:首頁 > 數據庫 > SQL教學 > SQL CHECK約束

SQL CHECK約束

檢查(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;