Ver Mensaje Individual
  #5 (permalink)  
Antiguo 01/04/2015, 15:07
MauMontes
 
Fecha de Ingreso: marzo-2015
Mensajes: 12
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: cursor mysql, gran duda

con este codigo he logrado que haga un insert por cada registro que en este caso son dos...sin embargo me inserta 3 registros...es decir el ultimo lo repite... no se como cortarlo antes..ejempplo

insert rut: 123456656 eso esta bien

insert rut: 153324456 eso tambien esta bien... pero luego vuelve hacer otro insert con este mismo rut

Código sql:
Ver original
  1. DROP PROCEDURE IF EXISTS `prueba2`$$
  2.  
  3. CREATE DEFINER=`root`@`localhost` PROCEDURE `prueba2`()
  4.  BEGIN
  5.  
  6.    DECLARE rut VARCHAR(10);
  7.    DECLARE done BOOLEAN DEFAULT 0;
  8.      
  9.    
  10.    DECLARE micursor CURSOR FOR SELECT rut_alum FROM alumno WHERE id_curso=13;
  11.    DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done=1;
  12.    
  13.      
  14.    OPEN micursor;
  15.  
  16.     REPEAT
  17.        FETCH micursor INTO rut;
  18.          INSERT INTO libcomunicacion(id_com,id_curso,des_com,fech_com,fecha_dada,tipo_com,rut_alum)
  19.          VALUES('','13','comunicacion desde el procedimiento','2015-06-12',NOW(),'r',rut);                             
  20.     UNTIL done END REPEAT;
  21.    
  22.    CLOSE micursor;
  23.    
  24.  END$$