SQL> Create Table Staff
2 (StaffNo char(4) not null,
3 FName char(15) not null,
4 LName char(20) not null,
5 Position char(10) not null,
6 Sex char(1) check(value in('f','m')),
7 Salary numeric(8,2),
8 branchNO char(4) check(value in(select branchNo from branch)),
9 Constraint StaffNopk primary key (StaffNo),
10 constraint branchfk foreign key (branchNo) references branch (branchNo));
Sex char(1)check(value in('f ','m')),
*
第6行错误:
ORA-02438:列检查约束无法引用其他列
有人能帮帮我吗
我正在尝试创建一个表,遇到了一个问题,您可以在语句的
1条答案
按热度按时间qvk1mo1f1#
你的直接问题:
Sex char(1) check(value in('f','m')),
应该是Sex char(1) check(Sex in('f','m')),
。在您当前的尝试中,oracle认为value
是一个列名,并且禁止在check约束中使用其他列。另外,您不需要检查
branchNO
:外键将自动处理此检查。演示here。