/* 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目录视图查找正确的列名称
表建筑物已删除。
表室已删除。
从以下行开始的错误:命令中的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目录视图查找正确的列名称
有什么帮助吗?
CONSTRAINT CONFERENCE_FK2 FOREIGN KEY(ROOMNO) REFERENCES ROOM(ROOMNO):外键必须引用另一个表的 整个 主键(或唯一键)。因此,只需添加buildingno:
CONSTRAINT CONFERENCE_FK2 FOREIGN KEY(ROOMNO) REFERENCES ROOM(ROOMNO)
CONSTRAINT CONFERENCE_FK2 FOREIGN KEY(BUILDINGNO, ROOMNO) REFERENCES ROOM(BUILDINGNO, ROOMNO)