小编典典

oracle sql:无法将外键添加到表->无效标识符?

sql

首先,我是db和sql的真正新手。但是,我必须对表PERSON和SPECIES进行操作,并且要向表SPECIES添加外键。尝试添加外键时,我总是收到错误消息“
ORA-900904:无效标识符”。我只是不知道自己做错了什么,为什么它不起作用?!?!

这是我的方法:

PERSON表和主键

create table person
(
name varchar2 (30),
firstname varchar2 (30),
persid number (8) not null
)
;

alter table person 
add constraint person_pk 
primary key (persid)
;

SPECIES表和主键

create table species
(
speciesnamelat varchar2 (30),
vartid number (8) not null
)
;

alter table Species
add constraint species_pk
primary key (vartid)
;

这部分工作正常,但以下内容无效:

指PERSON的SPECIES的外键

alter table species
add constraint species_person_fk
foreign key (persid)
references person (persid)
;

我总是收到此错误“ ORA-900904:无效的标识符”


阅读 268

收藏
2021-04-28

共1个答案

小编典典

您引用的persid不是表中的列,species因此错误…

编辑-根据评论:

这意味着您需要将某些列species用作外键…如果没有此类列,则需要先建立一个列,然后才能创建该约束。像这样:

alter table species
add persid number(8) not null
;
alter table species
add constraint species_person_fk
foreign key (persid)
references person (persid)
;

根据您的数据模型,SPECIES.PERSID可能是可选的或必需的。

2021-04-28