首先,我是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:无效的标识符”
您引用的persid不是表中的列,species因此错误…
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可能是可选的或必需的。