Оператор INSERT конфликтовал с ограничением FOREIGN KEY - SQL Server

Я получаю следующую ошибку. Вы могли помочь мне?

Сообщение 547, уровень 16, состояние 0, строка 1
Оператор INSERT конфликтовал с ограничением FOREIGN KEY "FK_Sup_Item_Sup_Item_Cat". Конфликт произошел в базе данных "dev_bo", таблица "dbo. Sup_Item_Cat". Оператор был завершен.

Код:

insert into sup_item (supplier_id, sup_item_id, name, sup_item_cat_id, 
                      status_code, last_modified_user_id, last_modified_timestamp, client_id)   
values (10162425, 10, 'jaiso', '123123',
        'a', '12', '2010-12-12', '1062425')

Последний столбец client_id вызывает ошибку. Я пытался поместить значение, которое уже существует в dbo.Sup_Item_Cat в столбец, соответствуя sup_item.. но никакая радость :-(

213
задан DineshDB 28 March 2018 в 02:12
поделиться

5 ответов

В вашей таблице dbo.Sup_Item_Cat есть ссылка внешнего ключа на другую таблицу. Принцип работы FK заключается в том, что в этом столбце не может быть значения, которое не находится в столбце первичного ключа ссылающейся таблицы.

Если у вас есть SQL Server Management Studio, откройте ее и sp_help 'dbo.Sup_Item_Cat'. Посмотрите, на каком столбце находится FK, и на какой столбец какой таблицы он ссылается. Вы вставляете плохие данные.

Дайте мне знать, если вам нужно что-то объяснить лучше!

270
ответ дан 23 November 2019 в 04:27
поделиться

Вам понадобится опубликовать свое заявление для получения дополнительных разъяснений. Но ...

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

15
ответ дан 23 November 2019 в 04:27
поделиться

Насколько я могу судить, проблема не в client_id. Похоже, проблема связана с 4-м столбцом sup_item_cat_id

Я бы запустил

sp_helpconstraint sup_item

и обратил внимание на столбец constraint_keys, возвращаемый для внешнего ключа FK_Sup_Item_Sup_Item_Cat, чтобы подтвердить, какой столбец является реальной проблемой, но я почти уверен, что это это не тот, который вы пытаетесь исправить. К тому же «123123» тоже выглядит подозрительно.

5
ответ дан 23 November 2019 в 04:27
поделиться

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

Например: Если у вас есть таблицы Books и Authors, где Books имеет ограничение внешнего ключа на таблицу Authors, и вы пытаетесь вставить запись книги, для которой не существует записи автора.

20
ответ дан 23 November 2019 в 04:27
поделиться

Это означает именно то, что написано. Вы пытаетесь вставить значение в столбец с ограничением FK, которое не соответствует никаким значениям в таблице поиска.

3
ответ дан 23 November 2019 в 04:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: