-4

这是我插入数据时遇到的错误:

INSERT INTO "44581114"."TEACHING_INFORMATION" (STAFFID, COURSEID, SEMESTER, YEAR) 
VALUES ('11223344', 'ISYS224', 'S3', '2014')

错误:

ORA-02291: integrity constraint (44581114.FK_TEACHING_RELATIONS_COURSE) violated - parent key not found
ORA-06512: at line 1

保存对表的更改时出现一个错误44581114"."TEACHING_INFORMATION:第 1 行:

ORA-02291: integrity constraint (44581114.FK_TEACHING_RELATIONS_COURSE) violated - parent key not found
ORA-06512: at line 1

如果有帮助,我已在此处附加 DDL 脚本:

/*==============================================================*/

/* DBMS name:      ORACLE Version 11g                           */

/* Created on:     11/10/2016 3:47:29 PM                        */
/*==============================================================*/


alter table ACADEMIC_REC
   drop constraint FK_ACADEMIC_RELATIONS_STUDENT;

alter table ACADEMIC_REC
   drop constraint FK_ACADEMIC_RELATIONS_COURSE;

alter table COURSE
   drop constraint FK_COURSE_OFFERS_DEPARTME;

alter table ENROLS
   drop constraint FK_ENROLS_ENROLS_STUDENT;

alter table ENROLS
   drop constraint FK_ENROLS_ENROLS2_TUT_PRAC;

alter table HAS_PREREQUISITE
   drop constraint FK_HAS_PRER_HAS_PRERE_COURSE;

alter table HAS_PREREQUISITE
   drop constraint FK_HAS_PRER_HAS_PRERE_COURSE;

alter table STAFF
   drop constraint FK_STAFF_RELATIONS_DEPARTME;

alter table TEACHING_INFORMATION
   drop constraint FK_TEACHING_RELATIONS_STAFF;

alter table TEACHING_INFORMATION
   drop constraint FK_TEACHING_RELATIONS_COURSE;

alter table TUT_PRAC
   drop constraint FK_TUT_PRAC_HAS_COURSE;

alter table TUT_PRAC
   drop constraint FK_TUT_PRAC_RELATIONS_STAFF;

drop table ACADEMIC_REC  cascade constraints;

drop table COURSE cascade constraints;

drop table ENROLS cascade constraints;

drop table HAS_PREREQUISITE cascade constraints;

drop table STAFF cascade constraints;

drop table STUDENT cascade constraints;

drop table TEACHING_INFORMATION cascade constraints;

drop table TUT_PRAC cascade constraints;


/*==============================================================*/

/* Table: ACADEMIC_REC                                          */

/*==============================================================*/

create table ACADEMIC_REC 

(

 STUID                CHAR(8)              not null,

COURSEID             CHAR(8)              not null,

STATUS               VARCHAR2(5),

YEAR                 NUMBER(4),

SEMESTER             CHAR(2),

 GRADE                VARCHAR2(2)         

constraint CKC_GRADE_ACADEMIC check (GRADE is null or (GRADE in ('HD','D','CR','P','F'))),

constraint PK_ACADEMIC_REC primary key (STUID, COURSEID)
);



/*==============================================================*/

/* Table: COURSE                                                */

/*==============================================================*/

create table COURSE 
(

COURSEID             CHAR(8)              not null,

DEPTID               CHAR(8)              not null,

COURSENAME           VARCHAR2(20),

 TEXTBOOK             VARCHAR2(20),

CREDITHOUR           NUMBER(2),

MAX_ENROL            NUMBER(4),

ACTUAL_ENROL         NUMBER(4),

 AVAILABILITY         NUMBER(4),

 COURSE_TIME          CHAR(7),


constraint PK_COURSE primary key (COURSEID)
);



/*==============================================================*/

/* Table: DEPARTMENT                                            */

/*==============================================================*/

create table DEPARTMENT 
(

DEPTID               CHAR(8)              not null,

DEPTNAME             VARCHAR2(20),

 DEPTCONTACTNO        NUMBER(10),

BUILDING             VARCHAR2(5),

constraint PK_DEPARTMENT primary key (DEPTID)
);


/*==============================================================*/

/* Table: ENROLS                                                */

/*==============================================================*/

create table ENROLS 
(

STUID                CHAR(8)              not null,

CLASSID              CHAR(8)              not null,

constraint PK_ENROLS primary key (STUID, CLASSID)
);



/*==============================================================*/

/* Table: HAS_PREREQUISITE                                      */

/*==============================================================*/

create table HAS_PREREQUISITE 
(

COURSEID             CHAR(8)              not null,

PREREQUISITEID       CHAR(8)              not null,

constraint PK_HAS_PREREQUISITE primary key (COURSEID, PREREQUISITEID)
);



/*==============================================================*/

/* Table: STAFF                                                 */

/*==============================================================*/

create table STAFF 
(

STAFFID              CHAR(8)              not null,

DEPARTMENTID         CHAR(8)              not null,

STAFFNAME            VARCHAR2(50),

STAFFADDRESS         VARCHAR2(70),

STAFFCONTACTNO       NUMBER(10),

STAFFEMAIL           VARCHAR2(50),

OFFICENO             NUMBER(5),

ROLE                 VARCHAR2(10),

 constraint PK_STAFF primary key (STAFFID)
);


/*==============================================================*/

/* Table: STUDENT                                               */

/*==============================================================*/

create table STUDENT 
(

 STUID                CHAR(8)              not null,

DEGREE               VARCHAR2(10),

MAJOR                VARCHAR2(10),

STU_NAME             VARCHAR2(50),

 STU_ADDRESS          VARCHAR2(70),

CONTACTNO            NUMBER(10),

EMAIL                VARCHAR2(50),

constraint PK_STUDENT primary key (STUID)
);


/*==============================================================*/

/* Table: TEACHING_INFORMATION                                  */

/*==============================================================*/

create table TEACHING_INFORMATION 

(

 STAFFID              CHAR(8)              not null,

COURSEID             CHAR(8)              not null,

SEMESTER             CHAR(2)              not null,

YEAR                 NUMBER(4)            not null,


constraint PK_TEACHING_INFORMATION primary key (STAFFID, COURSEID, SEMESTER, YEAR)
);


/*==============================================================*/

/* Table: TUT_PRAC                                              */

/*==============================================================*/

create table TUT_PRAC 
(

CLASSID              CHAR(8)              not null,

COURSEID             CHAR(8)              not null,

STAFFID              CHAR(8)              not null,

TYPE                 VARCHAR2(5),

DAY                  VARCHAR2(10),

TIME                 DATE,

ROOMID               CHAR(10),

NO_OF_SEATS          NUMBER(2),

constraint PK_TUT_PRAC primary key (CLASSID)
);


alter table ACADEMIC_REC
   add constraint FK_ACADEMIC_RELATIONS_STUDENT foreign key (STUID)
      references STUDENT (STUID);

alter table ACADEMIC_REC
   add constraint FK_ACADEMIC_RELATIONS_COURSE foreign key (COURSEID)
      references COURSE (COURSEID);

alter table COURSE
   add constraint FK_COURSE_OFFERS_DEPARTME foreign key (DEPTID)
      references DEPARTMENT (DEPTID);

alter table ENROLS
   add constraint FK_ENROLS_ENROLS_STUDENT foreign key (STUID)
      references STUDENT (STUID);

alter table ENROLS
   add constraint FK_ENROLS_ENROLS2_TUT_PRAC foreign key (CLASSID)
      references TUT_PRAC (CLASSID);

alter table HAS_PREREQUISITE
   add constraint FK_HAS_PRER_HAS_PRERE_COURSE foreign key (COURSEID)
      references COURSE (COURSEID);

alter table HAS_PREREQUISITE
   add constraint FK_HAS_PRER_HAS_PRERE_COURSE foreign key (PREREQUISITEID)
      references COURSE (COURSEID);

alter table STAFF
   add constraint FK_STAFF_RELATIONS_DEPARTME foreign key (DEPARTMENTID)
      references DEPARTMENT (DEPTID);

alter table TEACHING_INFORMATION
   add constraint FK_TEACHING_RELATIONS_STAFF foreign key (STAFFID)
      references STAFF (STAFFID);

alter table TEACHING_INFORMATION
   add constraint FK_TEACHING_RELATIONS_COURSE foreign key (COURSEID)
      references COURSE (COURSEID);

alter table TUT_PRAC
   add constraint FK_TUT_PRAC_HAS_COURSE foreign key (COURSEID)
      references COURSE (COURSEID);

alter table TUT_PRAC
   add constraint FK_TUT_PRAC_RELATIONS_STAFF foreign key (STAFFID)
      references STAFF (STAFFID);

我在 sql developer 中这样做,并且在使用它方面相当新,希望有助于找出解决方案

同样在教学信息表中,staffid 和 courseid 取自其父表,(学期)和(年)是教职员工和课程之间具有多对多基数的关联实体的属性。

课程-教学信息-员工

4

1 回答 1

1

先将记录插入到 Course 表中,然后再插入到 Course 表中存在的具有相同课程 ID 的教学信息中。

于 2016-10-21T08:41:31.167 回答