数据库:os:xp2002上的Oracle 10.1
我在employee表中设置了外键,但是我收到错误
此列列表没有匹配的唯一键或主键
我正在使用以下查询来创建表。
部门表:
create table department(
d_name varchar2(10) not null,
d_no_of_employees number(4));
员工表:
create table employee(
e_id number(4) ,
e_name varchar2(30) not null,
e_f_name varchar2(30) not null,
e_desg varchar2(20) not null,
e_address varchar2(50) not null,
e_phone_no number(12) not null,
e_salary number(10) not null,
e_house_rent number(6) not null,
e_conv_allow number(6) not null,
e_email varchar2(50) not null unique,
d2_name varchar2(10) not null,
e_hire_month number(2) not null,
e_hire_year number(4) not null,
constraint e_id_pk primary key(e_id),
constraint d2_name_fk foreign key(d2_name) references department(d_name))
;
请解决任何问题。
答案 0 :(得分:5)
外键必须是另一个表中的主键或唯一键。
答案 1 :(得分:2)
创建部门表的d_name PRIMARY KEY。
create table department(
d_name varchar2(10) not null,
d_no_of_employees number(4),
constraint d_name_pk primary key(d_name));
然后创建Employee表。
答案 2 :(得分:2)
根据您发布的内容,您似乎没有department
表上的主键。类似的东西:
create table department(
d_name varchar2(10) not null,
d_no_of_employees number(4)
constraint department_pk primary key(d_name));
或者在创作之后:
alter table department
add constraint department_pk primary key(d_name)
...