使用 “desc 表名”查看一下表的结构,对照着看看你输入的值是不是有不符的?
首先针对你这个问题进行解析下,CHECK其实就是一个检查索引,跟其他索引本质上并无区别,所以多个CHECK既可以理解为同时指定多个索引。
SQL> CREATE TABLE userinfo_c2
2 (id varchar2(10) PRIMARY KEY,
3 username varchar2(20),
4 salay number(5,0),
5 CONSTRAINT ck_c2_salay CHECK(salay >= 0),
6 CONSTRAINT ck_c2_salay_max CHECK(salay <= 10000));
很奇怪啊,为什么系统提示的错误跟实际错的不一致呢?单词写错,为什么提示有括号缺失。。。
列级约束是定义在列属性中的,而表级约束是定义在列之后的,两者本质上没什么区别,而如果你的约束需要同时对多列进行约束那么就只能采用表级约束,因为表级约束面向的是表(当然就包括所有列),而列级约束只能针对该列进行约束。