La declaración INSERT entró en conflicto con la restricción FOREIGN KEY - SQL Server
Mensaje 547, nivel 16, estado 0, línea 1
La instrucción INSERT entró en conflicto con la restricción FOREIGN KEY "FK_Sup_Item_Sup_Item_Cat". El conflicto ocurrió en la base de datos "dev_bo", tabla "dbo.Sup_Item_Cat". La instrucción se ha terminado.
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')
La última columna client_id
está causando el error. Intenté poner el valor que ya existe en la dbo.Sup_Item_Cat
columna correspondiente al sup_item.
Su tabla dbo.Sup_Item_Cat
tiene una referencia de clave externa a otra tabla. La forma en que funciona un FK es que no puede tener un valor en esa columna que no esté también en la columna de clave principal de la tabla a la que se hace referencia.
Si tiene SQL Server Management Studio, ábralo y sp_help
" dbo.Sup_Item_Cat
". Vea en qué columna está FK y a qué columna de qué tabla hace referencia. Estás insertando algunos datos incorrectos.
La respuesta en esta página de Mike M. es correcta:
La forma en que funciona un FK es que no puede tener un valor en esa columna que no esté también en la columna de clave principal de la tabla a la que se hace referencia.
Lo que falta en esa respuesta es: primero debe crear la tabla que contiene la clave principal.
Debe insertar datos en la tabla principal, que contiene la clave principal, antes de intentar insertar datos en la clave externa.
Después de agregar los datos de la clave principal, los datos de su clave externa en la tabla secundaria deben ajustarse al campo de clave principal en la tabla principal.
Está intentando insertar un registro con un valor en la columna de clave externa que no existe en la tabla externa.
Por ejemplo: si tiene tablas de Libros y Autores donde Libros tiene una restricción de clave externa en la tabla de Autores e intenta insertar un registro de libro para el cual no hay ningún registro de autor.
Ese error significa que la tabla en la que está insertando datos tiene una relación de clave externa con otra tabla. Antes de poder insertar datos, el valor del campo de clave externa debe existir primero en la otra tabla.
El problema no es con client_id por lo que puedo ver. Parece más bien que el problema está en la cuarta columna, sup_item_cat_id
Yo correría
sp_helpconstraint sup_item
y preste atención a la columna constraint_keys devuelta para la clave externa FK_Sup_Item_Sup_Item_Cat para confirmar qué columna es el problema real, pero estoy bastante seguro de que no es el que está intentando solucionar. Además, '123123' también parece sospechoso.