Hola que tal gente, tengo un problemilla y recurro una vez mas a ustedes...el problema es el siguiente, a ver si me pueden a yudar porfa, el primer cursor "micursor" trae el rut de la tabla alumno para el curso con id=13, este curso tiene solo dos alumnos, por lo tanto , esa consulta trae dos registros: ejemplo: 142345674, 165434566
luego en el insert lo que intento hacer es que, inserte dos registros en la tabla libcomunicaciones, si bien me hace el insert y la iteracion (2 veces), me inserta con el mismo rut que se extrae de "micursor", es decir hace dos insert pero con el rut 142345674, y lo que quiero hacer es un insert con el rut 142345674 y otro con el rut 165434566 ..
He tratado de exponer el problema lo mas claro posible..se que ando cerca de la solucion, pero no doy con ella, me debe faltar un LOOP o algo, pero he intentado y no logro solucionarlo ... de ante mano muchas gracias
Código SQL:
Ver originalDROP PROCEDURE IF EXISTS `prueba`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `prueba`()
BEGIN
DECLARE rut VARCHAR(10);
DECLARE contador INT(10);
DECLARE inicio INT (10) DEFAULT 0;
DECLARE micursor CURSOR FOR SELECT rut_alum FROM alumno WHERE id_curso=13;
DECLARE micursor2 CURSOR FOR SELECT COUNT(rut_alum) FROM alumno WHERE id_curso=13;
OPEN micursor;
OPEN micursor2;
FETCH micursor INTO rut;
FETCH micursor2 INTO contador;
WHILE inicio < contador DO
INSERT INTO libcomunicacion(id_com,id_curso,des_com,fech_com,fecha_dada,tipo_com,rut_alum)
VALUES('','13','comunicacion desde el procedimiento','2015-06-12',NOW(),'r',rut);
SET inicio = inicio+1;
END WHILE;
CLOSE micursor2;
CLOSE micursor;
END$$