Autor Tema: Cannot add or update a child row error Procedimiento almacenado MySql base datos  (Leído 373 veces)

LinkKenedy

  • Visitante
Hola amigos, tengo un problema con un procedimiento almacenado para una base de datos de ventas.

A la hora de llamar el procedimiento almacenado me tira error "Cannot add or update a child row" Ya que me es raro, pues programe el procedimiento para que me inserte el id primario de mi tabla productos, para despues actualizar el id primario de entradas.

Espero me puedan ayudar, os dejo unas capturas de mi procedimiento y la estructura de las tablas.



Y el codigo de mi procedimiento almacenado.

Código: [Seleccionar]
create procedure ProductoEntradasV1
(

p_id_producto varchar (50),
p_id_entradas varchar (50),
p_cantidad int,
p_precio double,
p_nombre varchar (50)

)


begin

declare existepro varchar(50);

set existepro = (Select id_producto from Producto where id_producto = p_id_producto);

if(existepro is null) Then

insert into Entradas (id_entradas, id_producto, cantidad, precio, fecha) values (p_id_entradas, p_id_producto, p_cantidad, p_precio, Sysdate());

update Producto set existencia = existencia + p_cantidad where id_producto = p_id_producto;

update Producto set precio_v = (p_precio * 0.16) + p_precio where id_producto = p_id_producto;


else

insert into Producto values (p_id_producto, p_nombre, 0, 0);

select existepro;

end if;


end //

Saludos!
« última modificación: 25 de Febrero 2018, 14:18 de Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2448
    • Ver Perfil
Buenas, aparentemente el error puede deberse a que estás tratando de insertar o actualizar una fila de una tabla basándote en un id de otra tabla que no existe, aunque no veo claro cuál es la forma de trabajo del procedimiento

Salu2

 

Esto es un laboratorio de ideas...
Aprender a programar

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".