2个回答
推荐于2017-09-12
展开全部
CREATE TABLE test_chk_case_when (
id int,
name varchar(10),
sex varchar(4),
age int
);
-- 男生年龄小于23岁,女生年龄小于21岁。
ALTER TABLE test_chk_case_when
ADD CONSTRAINT chk_test_sex_age
CHECK (
CASE WHEN sex='男' AND age<23 THEN 1
WHEN sex='女' AND age<21 THEN 1
ELSE 0 END = 1
);
SQL> INSERT INTO test_chk_case_when VALUES(1, '张三', '男', 22);
已创建 1 行。
SQL> INSERT INTO test_chk_case_when VALUES(2, '李四', '男', 23);
INSERT INTO test_chk_case_when VALUES(2, '李四', '男', 23)
*
ERROR 位于第 1 行:
ORA-02290: 违反检查约束条件 (TEST.CHK_TEST_SEX_AGE)
SQL> INSERT INTO test_chk_case_when VALUES(3, '王五', '女', 20);
已创建 1 行。
SQL> INSERT INTO test_chk_case_when VALUES(4, '赵六', '女', 21);
INSERT INTO test_chk_case_when VALUES(4, '赵六', '女', 21)
*
ERROR 位于第 1 行:
ORA-02290: 违反检查约束条件 (TEST.CHK_TEST_SEX_AGE)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询