sam*_*jam 4 sql oracle foreign-keys foreign-key-relationship
首先,我是 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)
;
Run Code Online (Sandbox Code Playgroud)
SPECIES 表和主键
create table species
(
speciesnamelat varchar2 (30),
vartid number (8) not null
)
;
alter table Species
add constraint species_pk
primary key (vartid)
;
Run Code Online (Sandbox Code Playgroud)
这部分工作正常,但以下不起作用:
指代人的物种的外键
alter table species
add constraint species_person_fk
foreign key (persid)
references person (persid)
;
Run Code Online (Sandbox Code Playgroud)
我总是收到此错误“ORA-900904:无效标识符”
您所指的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)
;
Run Code Online (Sandbox Code Playgroud)
根据您的数据模型,SPECIES.PERSID 可能是可选的或强制性的。