Pregunta

Esta es una captura de pantalla de mi db cuando yo haga esta consulta

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')

muestra tal error

Msg 547, nivel 16, estado 0, línea 1 La sentencia INSERT en conflicto con la restricción de clave externa "FK_Products_Type1". Conflicto en la base de datos "AcidDB", tabla "dbo.Type", la columna 'ID'. La instrucción se ha terminado.

text alt

¿Fue útil?

Solución

Usted está tratando de insertar un registro en los productos con un TypeID que no existe en el tipo de tabla.

No se registra en el tipo de tabla con el ID de "1".

Otros consejos

Sin ver la definición FK, esto es una conjetura:

Su mesa tipo no tiene una entrada con ID 1.

Por lo tanto, cuando se trata de insertar un 1 a la columna de TypeId, una entrada coincidente en la tabla Type no puede ser encontrado y no la restricción.

Sin relación: ¿Por qué está pasando una cadena ('1') a un parámetro INTEGER?

va a insertar el TypeId 1 en su mesa, pero parece que no hay TypeId 1 definido en el tipo de mesa.

Por cierto: no es necesario poner los valores int en ''

No realmente una pregunta, pero supongo que no entiende el mensaje de error ...
Es muy simple: su campo Products.TypeId tiene una restricción FK une a la mesa Type.ID.
Puesto que no hay type.id de valor '1' los factores desencadenantes de inserción de un error.
Tal vez, según ha apuntado por karlis, tiene un tipo 1 (sin comillas)!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top