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 original
DROP 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$$