在SQL中向我的表添加外键

时间:2013-12-07 21:19:41

标签: sql oracle

我遇到了问题

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:表或视图不存在

3 个答案:

答案 0 :(得分:0)

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

foreign key (customer_id) references AGENT (customer_id),

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

答案 1 :(得分:0)

表名是AGENTS而不是AGENT。

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

答案 2 :(得分:0)

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

在表格AGENTS中:使用references AGENTS (customer_id)