Está faltando um
delimiter
personalizado instrução. Como você perdeu, o mecanismo tentou compilar as instruções quando encontrou o primeiro terminador de instrução padrão, o ponto e vírgula
;
. E daí a exceção. Coloque toda a sua rotina entre:
-- define the delimiter
delimiter //
--- place here your stored procedure
-- and lastly following line
//
-- reset the delimiter
delimiter ;