create table t1
(
编号 varchar(10) not null check(regexp_like(编号,'[0-9][0-9][0-9][0-9]')) , //约束只能输入4位数字
姓名 varchar(20) not null
)表创建成功以后,
执行一下语句:
1、
insert into t1 values('21','aa');
返回错误,违反约束条件。
2、
insert into t1 values('1221','Aaa');
执行成功!
3、
insert into t1 values('12321','Daa');
执行成功!我创建的表中有约束条件,约束只能输入4位数字,为什么能输入5位呢?
是我写错了还是怎么个情况,求高手帮忙……
(
编号 varchar(10) not null check(regexp_like(编号,'[0-9][0-9][0-9][0-9]')) , //约束只能输入4位数字
姓名 varchar(20) not null
)表创建成功以后,
执行一下语句:
1、
insert into t1 values('21','aa');
返回错误,违反约束条件。
2、
insert into t1 values('1221','Aaa');
执行成功!
3、
insert into t1 values('12321','Daa');
执行成功!我创建的表中有约束条件,约束只能输入4位数字,为什么能输入5位呢?
是我写错了还是怎么个情况,求高手帮忙……
C:\Documents and Settings\Administrator>sqlplus /nologSQL*Plus: Release 10.2.0.1.0 - Production on 星期三 9月 14 08:35:19 2011Copyright (c) 1982, 2005, Oracle. All rights reserved.idle> conn scott/bee56915
已连接。
scott@TBWORA> create table t1
2 (
3 编号 varchar2(4) not null check(regexp_like(编号,'[0-9][0-9][0-9][0-9]')), /* 约束只能输入4位数字 */
4 姓名 varchar2(20) not null
5 );表已创建。scott@TBWORA> insert into t1(编号,姓名) values('00001','罗有谋');
insert into t1(编号,姓名) values('00001','罗有谋')
*
第 1 行出现错误:
ORA-12899: 列 "SCOTT"."T1"."编号" 的值太大 (实际值: 5, 最大值: 4)
scott@TBWORA> insert into t1(编号,姓名) values('0001','罗有谋');已创建 1 行。scott@TBWORA> insert into t1(编号,姓名) values('Z001','罗有谋');
insert into t1(编号,姓名) values('Z001','罗有谋')
*
第 1 行出现错误:
ORA-02290: 违反检查约束条件 (SCOTT.SYS_C005367)
create table t1
(
编号 varchar(10) not null check(regexp_like(编号, '^\d{4}$')) , --约束只能输入4位数字
姓名 varchar(20) not null
)
regexp_like(编号, '^[a-zA-Z]{4}$')