我试图施加约束以将电话号码的长度固定为 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
);
我试图施加约束以将电话号码的长度固定为 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
);
只需将最大长度定义为 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
);