MySQL - Ayuda con Store Procedure y Cursores

 
Vista:
sin imagen de perfil

Ayuda con Store Procedure y Cursores

Publicado por gabriel (1 intervención) el 22/12/2017 19:15:49
Buen dia grupo, les cuento, vengo del lado de SQL y Mysql en algunas cosas es muy distinto, por ejemplo con el manejo de cursores

Tengo lo siguiente y el problema es que solo me funciona con el primer ciclo, es decir, encuentra el PROJECT_ID=1 pero con luego hace un select y ese select no lo encuentra, me setea finished=1

Como se haria ??


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
CREATE  PROCEDURE `Asignar_Todos_Proyectos`()
BEGIN
	DECLARE finished INT DEFAULT 0;
	DECLARE v_member_id INT;
	DECLARE v_project_id INT;
 
	-- Leo todos los proyectos
	DECLARE Projects_cursor CURSOR FOR SELECT id FROM `projects` ;
        DECLARE CONTINUE HANDLER FOR NOT FOUND SET finished = 1;
 
	OPEN Projects_cursor ;
	BUCLE : LOOP
		FETCH Projects_cursor INTO v_project_id;
 
		IF finished = 1 THEN
			LEAVE BUCLE;
		END IF;
 
		SET v_member_id = NULL ;
 
		SELECT ID INTO v_member_id FROM members WHERE `project_id` = v_project_id ;
 
		IF v_member_id IS NULL THEN
			-- INSERT INTO members (user_id,project_id) VALUES (1,v_project_id)  ;
		END IF ;
 
	END LOOP BUCLE ;
 
END$$
 
DELIMITER ;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder