值检查约束
值检查约束用于限定一个字段的取值范围,也可以限定多个字段值相互间的关系,其形式为:CHECK(值约束表达式)。
语法格式
sql
check_constriant_stmt::=
[CONSTRAINT name] CHECK (expression)
参数说明
[CONSTRAINT name]
:可选关键字,用于指定检查约束的名称。name
:约束的名称,用于唯一标识该约束。CHECK
:关键字,定义检查约束。expression
:布尔表达式,指定列值必须满足的条件。
示例
创建一张名为test_check的表,该表插入数据值要求id>10或者name值为chk,否则数据无法插入。
sql
-- 创建表
CREATE TABLE test_check(id INTEGER, name CHAR(10), CHECK(id>10 OR name ='chk'));
-- 插入数据
INSERT INTO test_check (id, name) VALUES (11, '张三');
INSERT INTO test_check (id, name) VALUES (5, 'chk');
-- 查询表
SELECT * FROM test_check;
ID | NAME |
------------------------------------------------------------------------------
11 | abc|
5 | chk|
-- 插入无效数据,返回错误
INSERT INTO test_check (id, name) VALUES (5, 'cba');
Error: [E13008] 违反值检查约束
--