我试图强加一个约束来将电话号码的长度修改为12,但代码失败了:
create table customer (
rollcall number CONSTRAINT rc_pk PRIMARY KEY,
fname varchar(2) not NULL,
lname varchar(2) not NULL,
phone varchar2(13) check (length(phone))=12
);
答案 0 :(得分:2)
只需将最大长度定义为12 - 这将更容易:
create table customer (
rollcall number CONSTRAINT rc_pk PRIMARY KEY,
fname varchar(2) not NULL,
lname varchar(2) not NULL,
phone varchar2(12)
);
编辑:
既然问题已被重新解释为字段的长度应该正好是12个字符,那么事实上,你确实需要检查约束。原始片段中的问题是关闭括号的错位。以下代码段显示正确的展示位置,整个条件包含在check子句的括号中:
create table customer (
rollcall number CONSTRAINT rc_pk PRIMARY KEY,
fname varchar(2) not NULL,
lname varchar(2) not NULL,
phone varchar2(12) check (length(phone) = 12) -- here
);