Tengo un procedimiento almacenado que debe actualizar una tabla dependiendo de los resultados que arroja un Cursor.
Hasta ahora he conseguido que el cursor se ejecute sin problema, ahora cuando obtengo el campo del cursos que necesito para hacerle el UPDATE a la otra tabla, este no hace caso a la clausula WHERE de la sentencia que realiza el update.
Hasta el momento es extraño, por que el script actualiza todos los campos ó no actualiza nada.
Para poder ver realmente lo que el procedimiento estaba realizando, cree una tabla para almacenar y ver el output de la sentencia UPDATE dentro del Store procedure, y los resultados son los que yo esperaba que hiciera el procedimiento.
Tal vez sea algun problema de rendimiento, ya que el procedimiento deberia de realizar más de 16 UPDATES, pero me parece absurdo ya que en teoria para eso son los procedimientos almacenados

----------------- AQUI LES DEJO EL PROCEDIMIENTO ALMACENADO
CREATE PROCEDURE `grp_deny_access`(IN GRP INTEGER(11), IN MODULE INTEGER(11))
NOT DETERMINISTIC
SQL SECURITY DEFINER
COMMENT ''
BEGIN
DECLARE done, ID INT DEFAULT 0;
DECLARE MODULOS CURSOR FOR SELECT node.id
FROM dk_modules_admin AS node, dk_modules_admin AS parent
WHERE parent.id = MODULE AND node.lft BETWEEN parent.lft AND parent.rgt GROUP BY node.lft ORDER BY node.lft;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
OPEN MODULOS;
REPEAT
FETCH MODULOS INTO ID;
IF NOT done THEN
INSERT INTO test_cursor (modulo) VALUES (CONCAT('UPDATE dk_grp_access_admin SET stat = 1 WHERE module =', ID, ' AND grp =',GRP));
UPDATE dk_grp_access_admin SET stat = 0 WHERE grp = GRP AND module = ID;
END IF;
UNTIL done END REPEAT;
CLOSE MODULOS;
END;
Si alguien me podria orientar, le estaré agradecido por un buen tiempo

Gracias...