SQL - 外键错误
Posted
技术标签:
【中文标题】SQL - 外键错误【英文标题】:SQL - foreign key error 【发布时间】:2013-11-14 15:35:02 【问题描述】:当我尝试添加外键时出现此错误:
“ORA-00904:“BR_ID”:无效标识符”
create table Branch9
(br_id number NOT NULL,br_name varchar2(25) NOT NULL ,br_address varchar2(30),PRIMARY KEY(br_id))
create table Employee9
(emp_id number NOT NULL,emp_name varchar2(25) NOT NULL UNIQUE,emp_address varchar2(30),emp_age number,emp_dob date,emp_salary number,PRIMARY KEY(emp_id))
ALTER TABLE Employee9
ADD FOREIGN KEY (br_id) REFERENCES Branch9 (br_id);
是否与添加到 br_id 的 NOT NULL
约束相关?
【问题讨论】:
Branch9(br_id) 上的非空约束是多余的,因为它是主键,在 oracle 中不能为空。 【参考方案1】:br_id 必须是 Employee9 中的一列。
【讨论】:
【参考方案2】:br_id
必须在Employee9
表中:
这是你添加它的方式:
ALTER TABLE Employee9 ADD br_id number NOT NULL;
那么你可以这样做:
ALTER TABLE Employee9
ADD CONSTRAINT fk_br_id FOREIGN KEY (br_id) REFERENCES Branch9 (br_id);
【讨论】:
【参考方案3】:Employee9
中没有 br_id
列,是吗?:
create table Employee9 (
emp_id number NOT NULL,
emp_name varchar2(25) NOT NULL UNIQUE,
emp_address varchar2(30),
emp_age number,
emp_dob date,
emp_salary number,
PRIMARY KEY(emp_id)
)
【讨论】:
以上是关于SQL - 外键错误的主要内容,如果未能解决你的问题,请参考以下文章
在服务器执行 SQL 脚本错误:错误 1215:无法添加外键约束