检查长度约束在 Oracle11g sqlplus 中不起作用
Check length constraint is not working in Oracle11g sqlplus
我一直在尝试设置长度约束,这样它就不会接受长度大于或小于 5 的字符串
创建Table 语句:
create table exp(id char(10),name varchar(50));
添加约束语句:
alter table exp add constraint exp1 check(length(id)=5);
插入语句:
insert into exp(id,name) values('10001','Abhi');
但是每当我尝试像上面写的那样插入数据时,它会显示
insert into exp(id,name) values('10001','Abhi')
*
ERROR at line 1:
ORA-02290: check constraint (VIT.EXP1) violated
将 char(10) 更改为 varchar2(10):
create table exp(id varchar2(10),name varchar(50));
char(10) 列的长度始终为 10。不管您的插入语句如何。这就是您收到错误的原因。
我一直在尝试设置长度约束,这样它就不会接受长度大于或小于 5 的字符串
创建Table 语句:
create table exp(id char(10),name varchar(50));
添加约束语句:
alter table exp add constraint exp1 check(length(id)=5);
插入语句:
insert into exp(id,name) values('10001','Abhi');
但是每当我尝试像上面写的那样插入数据时,它会显示
insert into exp(id,name) values('10001','Abhi')
*
ERROR at line 1:
ORA-02290: check constraint (VIT.EXP1) violated
将 char(10) 更改为 varchar2(10):
create table exp(id varchar2(10),name varchar(50));
char(10) 列的长度始终为 10。不管您的插入语句如何。这就是您收到错误的原因。