![](/img/trans.png)
[英]Why the sql is giving result even if the column doesn't exist in the table?
[英]SQL : Table or view doesn't exist, why?
这是代码:
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上的简单调用中却出现了此错误。
因此,我尝试删除它并最终重新创建它,但是没有任何改变。
您在外部约束中引用了未创建的表,因此请更改顺序。
没有外来约束的第一个表和引用这些表的后表
DROP TABLE FILM CASCADE CONSTRAINTS;
DROP TABLE COMPANY CASCADE CONSTRAINTS;
DROP TABLE MAIN_ACTOR CASCADE CONSTRAINTS;
DROP TABLE DIRECTOR CASCADE CONSTRAINTS;
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
);
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 COMPANY (
Company_ID NUMBER(4) PRIMARY KEY,
Company_Name VARCHAR2(20) NOT NULL,
Company_Country VARCHAR2(20) NOT NULL
);
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)
);
因为您已级联到放置查询中的约束,所以Director_ID,ACTOR_ID和Company_ID的外键约束已受到影响,并且由于这些表也已删除,因此“创建FILM表”查询无法找到其他表来链接FOREIGN KEYS。 您需要自下而上运行CREATE查询,以便最后创建对其他表具有FOREIGN KEYS的FILM表,并重新建立REFERENTIAL KEYS。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.