簡體   English   中英

不明白為什么我的SQL無法正常工作

[英]Don't understand why my SQL isn't working

/* DROP TABLE STATEMENTS*/
DROP TABLE BUILDING CASCADE CONSTRAINTS PURGE;
DROP TABLE ROOM CASCADE CONSTRAINTS PURGE;
DROP TABLE CONFERENCESESSION CASCADE CONSTRAINTS PURGE;
DROP TABLE SPEAKER CASCADE CONSTRAINTS PURGE;

/* CREATE TABLE STATEMENTS*/
CREATE TABLE BUILDING(
BUILDINGNO CHAR(2),
BUILDINGWING VARCHAR2(15),
BUILDINGLANE VARCHAR2(15),
CONSTRAINT BUILDING_PK PRIMARY KEY(BUILDINGNO));

CREATE TABLE ROOM(
BUILDINGNO CHAR(2),
ROOMNO CHAR(2),
ROOMCAPACITY NUMBER(3),
CONSTRAINT ROOM_PK PRIMARY KEY(BUILDINGNO, ROOMNO),
CONSTRAINT ROOM_FK FOREIGN KEY(BUILDINGNO) REFERENCES BUILDING(BUILDINGNO));

CREATE TABLE SPEAKER(
SPEAKERID CHAR(2),
SPEAKERNAME VARCHAR2(20),
SPEAKERADDRESS VARCHAR2(50),
SPEAKERPHONE CHAR(12),
CONSTRAINT SPEAKER_PK PRIMARY KEY(SPEAKERID));

CREATE TABLE CONFERENCESESSION(
SESSIONID CHAR(4),
BUILDINGNO CHAR(2),
ROOMNO CHAR(2),
SPEAKERID CHAR(2),
SESSIONDATE DATE,
SESSIONPRICE NUMBER(4, 2),
CONSTRAINT CONFERENCE_PK PRIMARY KEY(SESSIONID),
CONSTRAINT CONFERENCE_FK1 FOREIGN KEY(BUILDINGNO)REFERENCES BUILDING(BUILDINGNO),
CONSTRAINT CONFERENCE_FK2 FOREIGN KEY(ROOMNO) REFERENCES ROOM(ROOMNO),
CONSTRAINT CONFERENCE_FK3 FOREIGN KEY(SPEAKERID) REFERENCES SPEAKER(SPEAKERID));

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

運行以上代碼時出現此錯誤:

表建築物下降。

表室已刪除。

錯誤開始於第4行:
下降表會議級聯約束清除
錯誤報告 -
ORA-00942:表或視圖不存在
00942. 00000-“表或視圖不存在”
*原因:
*行動:

表SPEAKER下降了。

已創建表BUILDING。

表ROOM已創建。

表SPEAKER已創建。

錯誤開始於第28行:
創建表會議(
SESSIONID CHAR(4),
BUILDINGNO CHAR(2),
ROOMNO CHAR(2),
SPEAKERID CHAR(2),
SESSIONDATE DATE,
會議價格(4,2),
CONSTRAINT CONFERENCE_PK主鍵(SESSIONID),
CONSTRAINT CONFERENCE_FK1外鍵(BUILDINGNO)參考建築物(BUILDINGNO),
CONSTRAINT CONFERENCE_FK2外鍵(ROOMNO)參考ROOM(ROOMNO),
CONSTRAINT CONFERENCE_FK3外鍵(SPEAKERID)參考SPEAKER(SPEAKERID))

錯誤報告 -
ORA-02270:此列列表沒有匹配的唯一鍵或主鍵
02270. 00000-“此列列表沒有匹配的唯一鍵或主鍵”
*原因:CREATE / ALTER TABLE語句中的REFERENCES子句提供了一個列列表,該列列表在被引用的表中沒有匹配的唯一或主鍵約束。
*操作:使用ALL_CONS_COLUMNS目錄視圖查找正確的列名稱

有什么幫助嗎?

CONSTRAINT CONFERENCE_FK2 FOREIGN KEY(ROOMNO) REFERENCES ROOM(ROOMNO) :外鍵必須引用另一個表的整個主鍵(或唯一鍵)。 因此,只需添加buildingno:

CONSTRAINT CONFERENCE_FK2 FOREIGN KEY(BUILDINGNO, ROOMNO) REFERENCES ROOM(BUILDINGNO, ROOMNO)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM