Вопрос

Это скриншот моей базы данных, когда я выполняю этот запрос

INSERT INTO Products(CategoryID, TypeID, BarCode, ArtNumber, ProductName, Price, SelfPrice, PriceWithOutAWD, UnitsInStock, Comment)
        VALUES('9', '1', '23', '23', 'kut', '20.29', '18.29', '19.10', '23', '19')

он показывает такую ошибку

Сообщение 547, уровень 16, состояние 0, строка 1 Оператор INSERT конфликтовал с ограничением ВНЕШНЕГО КЛЮЧА "FK_Products_Type1".Конфликт произошел в базе данных "AcidDB", таблице "dbo.Type", столбце "ID".Действие заявления было прекращено.

alt text

Это было полезно?

Решение

Вы пытаетесь вставить запись в Products с TypeID, которая не существует в table Type.

В табличном типе нет записи с идентификатором "1".

Другие советы

Не видя определения FK, это обоснованное предположение:

В вашей таблице типов нет записи с идентификатором 1.

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

Не связанный:Почему вы передаете строку ('1') к INTEGER параметр?

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

кстати:вам не нужно помещать int-значения в "!

На самом деле вы не задаете вопрос, но я предполагаю, что вы не понимаете сообщение об ошибке...
Это очень просто:ваши продукты.Поле TypeId содержит ограничение FK, связывающее с таблицей Type.ID.
Поскольку нет значения type.id '1', ваша вставка вызывает ошибку.
Возможно, как указал карлис, у вас тип 1 (без кавычек)!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top