4
respuestas

[Queja] ERROR 1452: Cannot add or update a child row: a foreign key constraint fails

Se pierde demasiado tiempo con este error y todo porque el profesor no le explica a uno que puede suceder, muy probablemente antes de grabar el video el también tuvo el mismo error ya que ventas_jugos se creo desde cero, pero en su video no sale el error, y debió haberlo explicado, de eso se trata esto, de que nos enseñen y nos digan como corregir los errores, he buscado multiples soluciones y ninguna me ha servido, ni siquiera las soluciones del foro. Aclaro que todo lo he realizado exactamente como el profesor lo indico, nada esta diferente.

4 respuestas

Hola Jorge, ¡espero que estés bien!

En este caso, el error 1452 ocurre cuando intentas agregar o actualizar una fila en una tabla que tiene una restricción de clave externa y la fila que estás intentando agregar o actualizar no cumple con esa restricción. Esto significa que la fila que estás intentando agregar o actualizar debe tener una clave externa válida que coincida con una clave primaria en la tabla referenciada.

En el contexto de tu pregunta, es posible que estés intentando agregar una fila en la tabla "ventas_jugos" que tiene una clave externa que debe coincidir con una clave primaria en otra tabla. Si la fila que estás intentando agregar no cumple con esa restricción, se producirá el error 1452.

Para solucionar este error, debes asegurarte de que la fila que estás intentando agregar o actualizar cumpla con la restricción de clave externa. Esto significa que debes verificar que los valores de la clave externa en la fila que estás intentando agregar existan en la tabla referenciada.

Por ejemplo, si tienes una tabla "ventas_jugos" con una columna "id_cliente" que es una clave externa que debe coincidir con la columna "id" en la tabla "clientes", debes asegurarte de que el valor de "id_cliente" en la fila que estás intentando agregar exista en la tabla "clientes".

Aquí tienes un ejemplo de cómo podrías solucionar este error:

Supongamos que tienes las siguientes tablas:

Tabla "clientes":

+----+-----------+
| id |   nombre  |
+----+-----------+
|  1 | Cliente A |
|  2 | Cliente B |
+----+-----------+

Tabla "ventas_jugos":

+----+-----------+--------+
| id | id_cliente|  jugo  |
+----+-----------+--------+
|  1 |     1     | Jugo A |
|  2 |     3     | Jugo B |
+----+-----------+--------+

En este caso, la fila con "id_cliente" igual a 3 en la tabla "ventas_jugos" no cumple con la restricción de clave externa porque no existe un cliente con "id" igual a 3 en la tabla "clientes".

Para solucionar este error, debes asegurarte de que el valor de "id_cliente" en la fila que estás intentando agregar exista en la tabla "clientes". En este caso, podrías cambiar el valor de "id_cliente" a 1 en la fila con "id" igual a 2 en la tabla "ventas_jugos" para que cumpla con la restricción de clave externa.

Espero que esta explicación te ayude a entender el error 1452 y cómo solucionarlo en tu caso específico. Si tienes alguna otra pregunta, no dudes en hacerla.

¡Espero haber ayudado y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!

Errr debido a la telacion hijo con su padre.

hola, tuve la misma situacion, al crear la Tabla items_facturas_1, en CONSTRAINT debes referenciar a tb_facturas1, quedando, CONSTRATINT 'FK_FACTURAS1' FOREIGN KEY ('NUMERO') REFERENCES 'tb_facturas1' (NUMERO), Y primero haciendo el DROP de la primera tabla creada

Hola Jorge

Para poder ayudarte, quisiera saber dónde te sale el error, cuando ejecutas cuál comando. Probablemente el error te aparece cuando tratas de agregar un registro con un valor de campo no contenido en la tabla padre, por ello lo que te indica Brenda es correcto, pero también podría deberse a lo que te indica Guillermo. Entonces, sería importante que coloques tus comandos y los valores de las tablas. De esta manera no hablaremos de supuestos sino de hechos concretos.

Quedo a la espera de tu respuesta y así juntos seguir estudiando. Sigamos apoyándonos. Un saludo.