MySQL - SOLUCIONADO Procedimiento para actulizar tabla en funcion de columna

   
Vista:

SOLUCIONADO Procedimiento para actulizar tabla en funcion de columna

Publicado por Willy (1 intervención) el 13/04/2014 03:51:26
Buenas,
Estoy intentando hacer un procedimiento en mysql para actualizar el campo id_activity en una tabla de casi un millon de registros, cogiendolo de otra tabla si la columna name coincide en ambas..

Expongo el codigo que intento meter desde el SQL de Phpmydmin:

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
32
33
34
35
36
37
38
39
40
41
42
43
44
create procedure importar_id_activity()
begin
declare hasMoreRows bool default true;
declare _name varchar(50);
declare _id_activity int(11);
 
declare cur cursor for
	select
	    ca.name,
	    ca.id_activity
	from
	    temporal as ca
	where
		id_activity > 0
	;
 
declare continue handler for SQLSTATE '02000'
    set hasMoreRows = false;
 
open cur;
 
fetch cur into
	_name,
	_id_activity;
 
while hasMoreRows do
 
	update
	    real
	set
		id_activity = _id_activity
	where
		name LIKE _name AND (id_activity IS NULL OR id_activity = 0)
	;
 
	fetch cur into
		_name,
		_id_activity;
 
end while;
 
close cur;
 
end;

El error que me devuelve Phpmyadmin es este:
1
2
3
4
5
6
7
8
consulta SQL:
 
CREATE PROCEDURE importar_id_activity( ) BEGIN DECLARE hasMoreRows BOOL DEFAULT TRUE ;
 
 
MySQL ha dicho: Documentación
 
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 6 

Alguien sabe que estoy haciendo mal ?

EDIT: SOLUCIONADO-> Donde pone delimiter en phpmyadmin tenia que poner $$ ... xD
Gracias, Un saludo!
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