数据库oracle外键错误ORA-02270:此列列表没有匹配的唯一键或主键

时间:2016-07-18 16:28:33

标签: oracle

在播放器表中创建外键时显示以下错误

  

ORA-02270:此列列表没有匹配的唯一键或主键

create table person
(

per_ssn number(10) not null,

per_name varchar2(30) not null,

CONSTRAINT pk_PersonID PRIMARY KEY (per_ssn,per_name)

); 


create table Player 
(

player_ssn number(10) not null,

player_name varchar2(30) not null,

football_club_name varchar2(30) not null, 

p_age number(2) not null,

p_weight number(3) not null,

p_height number(10) not null,

country varchar2(20) not null,

p_starting_date date not null, 

p_ending_date date not null

);

alter table Player

 add constraint player_ssn 

 FOREIGN KEY (player_ssn)

 REFERENCING person (per_ssn)on delete cascade

我想在person表中创建两个主键,然后想要引用它们 播放器表中的主键。

如果我制作一个主键然后在播放器表中引用它,那么它不显示错误但我想制作两个主键。

1 个答案:

答案 0 :(得分:0)

您应引用per_ssn,per_name,因为这是您person上的PK。 无论如何,考虑在per_ssn

中制作person PK
alter table Player
add constraint player_ssn 
FOREIGN KEY (player_ssn,player_name)
REFERENCING person (per_ssn,per_name)on delete cascade