Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

Solución a Error Code: 1452 (clave de vendedores)

En el otro post recomendaban deshabiltar el chequeo de clave extranjera para que funcione, cosa que me parece, no se debe hacer. El problema está en otro lado.

El error es: Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (empresa.facturas, CONSTRAINT facturas_ibfk_2 FOREIGN KEY (MATRICULA) REFERENCES vendedores (MATRICULA))

El problema es que cuando se prueba la función f_vendedor_aleatorio(), por ejemplo, para el vendedor 00235, devuelve 235. Los dos son VARCHAR(5) pero distintos. Quizás a otros le devuelven bien, pero a mí me pasaba esto.

La solución que encontré fue hacer lo que hizo el profesor, volver a crear la tabla vendedores usando un tipo INT en la clave primaria. Tuve que volver a borrar y crear también Facturas e Items por las restricciones. Y cuando hago los inserts de los datos de facturas desde jugos_ventas, hago un CAST a MATRICULA para que convierta el varchar a INT, de esta forma:

INSERT INTO facturas SELECT NUMERO, FECHA_VENTA AS FECHA, DNI, CAST(MATRICULA AS UNSIGNED) AS MATRICULA, IMPUESTO FROM jugos_ventas.facturas;

El UNSIGNED lo toma como INT y con esto pude solucionar el problema. Lo dejo por si a alguien le sirve.

1 respuesta
solución!

Hola, Cristian! Cómo va? :))

Gracias por tu aporte en el foro y por contribuir con la solución del problema que se te presentó. Tu contribución es esencial para el crecimiento de nuestra comunidad en Alura.

Sigue así y no dudes en volver al foro si tienes alguna pregunta o dificultad.

Abrazos y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓.