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

发布于 2024-12-15 08:34:55 字数 839 浏览 2 评论 0原文

首先,我是 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)
;

这部分工作正常,但以下不起作用:

SPECIES 的外键指的是PERSON

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

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

First off, I'm a real newbie to db and sql. However, I have to tables, PERSON and SPECIES and I want to add a foreign key to the table SPECIES. When trying to add the foreign key I always get the error message "ORA-900904: invalid identifier". I just can't figure out what I've done wrong and why it doesn't work?!?!

This was my approach:

PERSON table and primary key

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 table and primary key

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

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

This part worked fine but the following didn't work:

Foreign Key for SPECIES referring to PERSON

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

I always get this Error "ORA-900904: invalid identifier"

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

薯片软お妹 2024-12-22 08:34:55

您引用的是 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 可能是可选的或强制的。

you are refereing to persid which is not a column in table species thus the error...

EDIT - As per comments:

It means that you need some column in species to be used as foreign key... if there is no such column then you need to build one in before you can create that constraint. Like this:

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

Depending on your data model, SPECIES.PERSID may be optional or mandatory.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文