在 SQL 中向我的表添加外键

Posted

技术标签:

【中文标题】在 SQL 中向我的表添加外键【英文标题】:Adding a foreign key to my table in SQL 【发布时间】:2013-12-07 21:19:41 【问题描述】:

我有问题

create table REALESTATE (
reale_id        integer,
agents_id       integer not null,
listing_id      integer not null,
primary key (reale_id)
);

*表已创建*

create table AGENTS (
 agents_id  integer,
agents_name  char(10) not null,
agents_lname char(20) not null,
listing_id  integer,
customer_id integer,
reale_id    integer, 
primary key (agents_id),
foreign key (customer_id) references AGENT (customer_id),
foreign key (reale_id) references REALESTATE (reale_id)
);

第 9 行的错误: ORA-00942: 表或视图不存在

create table CUSTOMER (
customer_id     integer,
customer_name   char(6) not null,
customer_lname  char(15) not null,
agents_id       integer,
primary key (customer_id),
foreign key (agents_id) references AGENTS (agents_id)
);

第 7 行出现错误:ORA-00942:表或视图不存在

【问题讨论】:

【参考方案1】:

在代理的创建表中,您有这一行。

foreign key (customer_id) references AGENT (customer_id),

但是,表代理不存在。此时仅存在表房地产。这意味着没有创建表代理,这会导致表客户出现问题。

【讨论】:

【参考方案2】:

表名是 AGENTS 而不是 AGENT。

foreign key (customer_id) references AGENT (customer_id), 更改为foreign key (customer_id) references AGENTS (customer_id),

【讨论】:

【参考方案3】:

AGENTS 未创建,因为它引用了一个名为 AGENT 的表(请参阅缺少的 S),该表不存在。由于AGENTS 的创建失败,您无法创建CUSTOMERS,因为它还引用了AGENTS,而该AGENTS 没有被创建(由于之前的错误)。

在表AGENTS:使用references AGENTS (customer_id)

【讨论】:

以上是关于在 SQL 中向我的表添加外键的主要内容,如果未能解决你的问题,请参考以下文章

如何在 OnChangeText 中向我的组件 inputText 添加两个状态

在 Parse Server 中向我的数组添加唯一值(swift 3)

如何在我的视图控制器中向我的“全部删除”和“保存”按钮添加警报?

如何在我的程序中向我的对象和屏幕周围添加碰撞?

如何在 Mac Os X 中向我的可可应用程序的屏幕添加信息

在OCaml中向我的AST添加行信息