CHECK 子句

检查约束指明了在数据可插入列 before 必须满足的条件。

CHECK 子句

插入或更新时,如果行对表上定义的任何检查约束返回 false ,则数据库服务器返回一条错误。然而,如果行对检查约束返回 NULL ,则不返回错误。在某些情况下,您可能希望同时使用检查约束和 NOT NULL 约束。

检查约束是使用搜索条件定义的。搜索条件不能包含用户定义的例程、子查询、聚集、主变量或行标识。另外,条件不能包含变量内置函数 CURRENT 、SYSDATE 、USER 、CURRENT_USER 、SITENAME 、DBSERVERNAME 或 TODAY 。

检查约束不能包含不同表中的列。当正在使用 ADD 或 MODIFY 子句时,检查约束不能依赖于相同表的其它列中的值。

下一示例添加一个新的 unit_price 列到 items 表,并包含一个检查约束来确保输入的值大于 0
ALTER TABLE items 
        ADD (unit_price MONEY (6,2) CHECK (unit_price > 0));
要创建检查多个列中值的约束,请使用 ADD CONSTRAINT 子句。以下示例在先前示例中添加的列上构建了一个约束。检查约束现在跨越了表中的两列。
ALTER TABLE items ADD CONSTRAINT CHECK (unit_price < total_price);
1 请参阅 条件