ORACLE вставить родительский ключ ограничения целостности ошибки не найден, когда он существует - PullRequest
0 голосов
/ 21 апреля 2020

Первая таблица

SQL> CREATE TABLE PLAN
  2  (
  3  grade       char(1),
  4  sectionid    char(10),
  5  courseid    char(5),
  6  sin     char(9),
  7  constraint    planPK
  8  primary key    (sin,sectionid),
  9  constraint    sinFK
 10  foreign key    (sin)
 11  references    STUDENT(sin),
 12  constraint    sectionsFK
 13  foreign key    (courseid,sectionid)
 14  references    SECTION(sectionnum, courseid));

вторая таблица

CREATE TABLE SECTION
(
sectionnum         char(5),
courseid           char(5),
instructorName     varchar(20)
constraint         sectionidPK
primary key        (sectionnum,courseid)
)

курс и раздел существуют в таблице разделов, но при вставке значений выдает ошибку, говоря, что первичный ключ не найден.

1 Ответ

3 голосов
/ 21 апреля 2020

В определении таблицы plan:

constraint    sectionsFK
    foreign key    (courseid, sectionid)
    references    SECTION(sectionnum, courseid)

Из названий столбцов я подозреваю, что вы хотите вещи наоборот:

constraint    sectionsFK
    foreign key    (sectionid, courseid)
    references    SECTION(sectionnum, courseid)

Порядок столбцов важен, поэтому кортежи значений могут правильно совпадать.

Я бы также предложил исправить типы данных, чтобы они были идентичны: sectionnum равно char(5) в таблице section, поэтому sectionid в таблице plan также должно быть char(5) вместо char(10).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...