ORA-02291 Ограничение целостности - PullRequest
0 голосов
/ 05 апреля 2019

Я перепробовал все, но все еще получаю ошибку при вставке данных.

  create table Address(
  AddressID integer primary key,
  StreetnameID integer,
  CountyID integer,
  CityID integer,
  PostcodeID integer,
  DoornumID integer,
  foreign key (StreetnameID) references Streetname,
  foreign key (CountyID) references County,
  foreign key (CityID) references City,
  foreign key (PostcodeID) references Postcode,
  foreign key (DoornumID) references Doornum
);

Это моя таблица создания адресов.Ниже мой оператор вставки, который терпит неудачу.

INSERT INTO Address(AddressID, StreetnameID, CountyID, CityID, PostcodeID, DoornumID)
values(seq_AddressID.nextval, 1, 1, 1, 1, 1)

Я не знаю, что вызывает эту проблему, чтобы вызвать эту ошибку:

ORA-02291: integrity constraint (ROOT.SYS_C007211) violated - parent key not found

Ответы [ 2 ]

2 голосов
/ 05 апреля 2019

Одна из ссылок на внешний ключ не существует. Все они должны существовать. Это было бы легче понять, если бы вы назвали ограничения:

create table Address (
  AddressID integer primary key,
  StreetnameID integer,
  CountyID integer,
  CityID integer,
  PostcodeID integer,
  DoornumID integer,
  constraint fk_address_StreetnameID foreign key (StreetnameID) references Streetname,
  constraint fk_address_CountyID foreign key (CountyID) references County,
  constraint fk_address_CityID foreign key (CityID) references City,
  constraint fk_address_PostcodeID foreign key (PostcodeID) references Postcode,
  constraint fk_address_DoornumID foreign key (DoornumID) references Doornum
);

Ограничение требует, чтобы соответствующие строки существовали в справочных таблицах до . Вы можете вставить строки в address.

0 голосов
/ 05 апреля 2019

ORA-02291: ограничение целостности (ROOT.SYS_C007211) нарушено - родительский ключ не найден

Для оператора вставки эта ошибка ORA-02291 является распространенной, когда вы пытаетесь вставить дочерний элемент без соответствующего родителя, как определено ограничением внешнего ключа. В этом случае вам нужно добавить родительскую строку в таблицу, а затем заново вставить строку дочерней таблицы.

, поэтому проверьте свою родительскую таблицу, где вы пропустили, чтобы поместить данные, которые пытаются вставить сюда, в текущую дочернюю таблицу

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