小编典典

不明白为什么我的SQL无法正常工作

sql

/* 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行开始-命令 -CREATE
TABLE CONFERENCESESSION(
SESSIONID CHAR(4),
BUILDINGNO CHAR(2),
ROOMNO CHAR(2),
SPEAKERID CHAR(2),
SESSIONDATE DATE,
SESSIONPRICE NUMBER(4,2),
CONSTRAINT CONFERENCE_PK主键(SESSIONID),
约束协商会议_FK1外键(BUILDINGNO)参照建筑物(BUILDINGNO),
约束协商
会议_FK2外键

错误报告
-ORA-02270:此列列表
02270没有匹配的唯一键或主键。00000-“此列列表没有匹配的唯一键或主键”
原因:CREATE / ALTER TABLE语句中的REFERENCES子句给出一个被引用的表中没有匹配的唯一或主键约束的column-list。
操作:使用ALL_CONS_COLUMNS目录视图查找正确的列名称

有什么帮助吗?


阅读 139

收藏
2021-04-15

共1个答案

小编典典

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

CONSTRAINT CONFERENCE_FK2 FOREIGN KEY(BUILDINGNO, ROOMNO) REFERENCES ROOM(BUILDINGNO, ROOMNO)
2021-04-15