Ver Mensaje Individual
  #4 (permalink)  
Antiguo 08/11/2012, 10:57
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Es posible crear un INSERT y un UPDATE dentro de un IF?

Recorrer la tabla con un cursor parece innecesario para determinar lo que se necesita. Sólo tienes que ajustar la consulta requerida.
El uso de cursores para realizar la busqueda de un único registro no es una buena decisión si es posible afinar la parametrización del SELECT.
Algo como:
Código MySQL:
Ver original
  1. DELIMITER $$
  2. CREATE PROCEDURE actakuzapago(IN idusr INT, IN yr INT, IN cpt VARCHAR(50))
  3.     DECLARE fech DATE;
  4.     DECLARE conc VARCHAR(50);
  5.     SELECT FECHA_SALDADA, CONCEPTO
  6.     FROM pagos
  7.     WHERE IDUSER = 55
  8.     INTO fech, conc;
  9.     IF  conc = cpt AND YEAR(fech) <yr
  10.         UPDATE pagos
  11.         SET baja = 1
  12.         WHERE IDUSER = 55;
  13.     ELSE
  14.         INSERT INTO pagos (IDUSR, CONCEPTO, MONTO, FECHA, FECHA_SALDADA)
  15.         VALUES (idusr, cpt ,'200','0000-00-00 00:00:00',CURDATE());
  16.     END IF;
  17. END$$
  18. DELIMITER ;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)