【发布时间】:2018-03-04 17:34:00
【问题描述】:
代码如下:
DROP TABLE FILM CASCADE CONSTRAINTS;
DROP TABLE COMPANY CASCADE CONSTRAINTS;
DROP TABLE MAIN_ACTOR CASCADE CONSTRAINTS;
DROP TABLE DIRECTOR CASCADE CONSTRAINTS;
CREATE TABLE FILM (
Film_ID NUMBER(4) PRIMARY KEY,
Title VARCHAR2(35) NOT NULL,
Year Date NOT NULL,
Language VARCHAR2(20),
Director_ID NUMBER(4) NOT NULL,
Actor_ID NUMBER(4) NOT NULL,
Company_ID NUMBER(4) NOT NULL,
Genre NUMBER(4) NOT NULL,
FOREIGN KEY (Director_ID) REFERENCES DIRECTOR(Director_ID),
FOREIGN KEY (Actor_ID) REFERENCES MAIN_ACTOR(Main_Actor_ID),
FOREIGN KEY (Company_ID) REFERENCES COMPANY(Company_ID)
);
CREATE TABLE COMPANY (
Company_ID NUMBER(4) PRIMARY KEY,
Company_Name VARCHAR2(20) NOT NULL,
Company_Country VARCHAR2(20) NOT NULL
);
CREATE TABLE MAIN_ACTOR (
Main_Actor_ID NUMBER(4) PRIMARY KEY,
First_Name VARCHAR2(20) NOT NULL,
Last_Name VARCHAR2(20) NOT NULL,
Birthday Date NOT NULL,
Country VARCHAR2(20)
);
CREATE TABLE DIRECTOR (
Director_ID NUMBER(4) PRIMARY KEY,
Director_First_Name VARCHAR2(20),
Director_Last_Name VARCHAR2(20) NOT NULL,
Director_BD Date,
Country VARCHAR2(20) NOT NULL
);
我得到的错误是:
Line 6
Error report -
ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
所以我搜索了一下,什么也没找到。当您使用错误的权限调用 select 时,似乎会发生所有此类错误,但在这里对 CREATE TABLE 进行简单调用时会出现此错误。
所以我尝试删除它并最终重新创建它,但没有任何改变。
【问题讨论】:
-
FOREIGN KEY (Director_ID) REFERENCES DIRECTOR(Director_ID)引用了DIRECTOR,您刚刚在第 4 行删除了它。 -
您需要先创建表,然后才能将它们用于外键引用。只需以不同的顺序创建表格即可。
标签: sql oracle ddl create-table