1

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

1 回答 1

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
);
于 2015-09-07T18:58:36.750 回答