CHECK 约束用于限制列中的值的范围。
如果对单个列定义 CHECK 约束,那么该列只允许特定的值。
如果对一个表定义 CHECK 约束,那么此约束会在特定的列中对值进行限制。
SQL CHECK CONSTRAINT ON CREATE TABLE
在 “PHONE” 表创建时为 “PHONENUMBER” 列创建 CHECK 约束。CHECK 约束规定 “YEAR” 列必须只包含大于2005 的整数
My SQL
CREATE TABLE PHONE(PHONENUMBER NUMBER(11) NOT NULL PRIMARY KEY,PHONETYPE VARCHAR2(20) NOT NULL,YEAR NUMBER(4),CHECK(YEAR>2015))
SQL Server / Oracle / MS Access
CREATE TABLE PHONE(PHONENUMBER NUMBER(11) NOT NULL PRIMARY KEY,PHONETYPE VARCHAR2(20) NOT NULL,YEAR NUMBER(4) CHECK(YEAR>2015))
如果需要命名 CHECK 约束,以及为多个列定义 CHECK 约束
SQL CHECK CONSTRAINT ON ALTER TABLE
如果在表已存在的情况下为 “YEAR” 列创建 CHECK 约束
MySQL / SQL Server / Oracle / MS Access
ALTER TABLE PHONE ADD CHECK(YEAR>2005)
如果需要命名 CHECK 约束,以及为多个列定义 CHECK 约束
MySQL / SQL Server / Oracle / MS Access
ALTER TABLE PHONE
ADD CONSTRAINT CHK CHECK (YEAR>2005 AND YEAR<=2017)
撤销 CHECK 约束
如需撤销 CHECK 约束
SQL Server / Oracle / MS Access
ALTER TABLE PHONE
DROP CONSTRAINT CHK
MySQL
ALTER TABLE PHONE
DROP CHECK CHK