Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Problema con Procedimiento Almacenado

Estas en el tema de Problema con Procedimiento Almacenado en el foro de Mysql en Foros del Web. Hola, hoy he comenzado a utilizar procedimientos almacenados pero veo que ando perdido … Intente hacer un doble insert. El cual me insertara los datos ...
  #1 (permalink)  
Antiguo 29/05/2015, 07:37
 
Fecha de Ingreso: mayo-2015
Mensajes: 3
Antigüedad: 9 años, 6 meses
Puntos: 0
Información Problema con Procedimiento Almacenado

Hola, hoy he comenzado a utilizar procedimientos almacenados pero veo que ando perdido… Intente hacer un doble insert. El cual me insertara los datos a la primera tabla, luego, recuperar el último id insertado y colocarlo como dato en una segunda tabla, cabe destacar que las dos tablas contienen id autoincreméntales. El problema consiste en que inserta correctamente en la primera tabla pero en la segunda no hace nada, espero que puedan ayudarme, gracias.

Código PHP:
CREATE DEFINER=`root`@`localhostPROCEDURE `USP_Registrar_pago_tb`(IN `p_numero_reciboVARCHAR(100), IN `p_monto_pagoVARCHAR(45), IN `p_fecha_pagoDATEIN `p_depto_tb_id_deptoINT(11), IN `p_forma_pago_tb_id_forma_pagoINT(11))
BEGIN
INSERT INTO 
`recibo_tb`(`numero_recibo`) 
VALUES (p_numero_recibo);

SET @p_ultimo_id_insertado = (SELECT MAX(id_reciboFROM recibo_tb);

INSERT INTO `pago_tb`(`monto_pago`, `fecha_pago`, `depto_tb_id_depto`, `recibo_tb_id_recibo`, `forma_pago_tb_id_forma_pago`) 
VALUES (p_id_pagop_monto_pagop_fecha_pagop_depto_tb_id_depto, @p_ultimo_id_insertadop_forma_pago_tb_id_forma_pago);

END 
  #2 (permalink)  
Antiguo 29/05/2015, 08:04
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 5 meses
Puntos: 379
Respuesta: Problema con Procedimiento Almacenado

Creo que tu pregunta estaría mejor en el foro de base de datos.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 29/05/2015, 08:23
 
Fecha de Ingreso: abril-2009
Ubicación: En foros del web, normalmente en Web general, HTML y CSS.
Mensajes: 258
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: Problema con Procedimiento Almacenado

El problema que veo es que estás intentando meter 6 valores en 5 columnas. Segundo INSERT:

Código MySQL:
Ver original
  1. INSERT INTO `pago_tb`(`monto_pago`, `fecha_pago`, `depto_tb_id_depto`, `recibo_tb_id_recibo`, `forma_pago_tb_id_forma_pago`)  
  2. VALUES (p_id_pago, p_monto_pago, p_fecha_pago, p_depto_tb_id_depto, @p_ultimo_id_insertado, p_forma_pago_tb_id_forma_pago);

Si te fijas después del nombre de la tabla indicas en qué columnas quieres meter los datos (has escrito 5), y después de "VALUES" indicas los valores a almacenar (has escrito 6).

Un cordial saludo.
__________________
¿Por qué Anónimo?, porque como está el mundo no podemos considerarnos humanos...
  #4 (permalink)  
Antiguo 29/05/2015, 21:25
 
Fecha de Ingreso: mayo-2015
Mensajes: 3
Antigüedad: 9 años, 6 meses
Puntos: 0
De acuerdo Respuesta: Problema con Procedimiento Almacenado

Muchas gracias Anonimo12, exactamente tenía un campo de más, creo que el cansancio me paso la cuenta... Se agradece tu disposición y tu tiempo para ayudar.

Etiquetas: almacenado, php, procedimiento, select, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:23.