DELIMITER $$
/*
Esta procedure cria, para cada grupo existente, um livrable em branco.
Possibilitando, assim, a visualização de quais grupos possuem Livrables cadastrados, e quais não possuem.
*/
DROP PROCEDURE IF EXISTS `pvoriginal`.`criaLivrables` $$
CREATE PROCEDURE `pvoriginal`.`criaLivrables` ()
BEGIN
DECLARE cont, maxlivrable, quantGrupos int;
select max(id_grupo) into quantGrupos from grupo;
set cont = 1;
while cont <= quantGrupos loop
insert into livrables(`id_livrable`, `plan2d3d`, `pcp`, `rcm`, `compteRenduEpc`, `gamaDeControle`, `defeitos`, `declarationDeConformite`, `sinotico`, `fnrRang2`, `ficheDet`, `st`, `pds`, `piv`, `raportEssaisCondicionement`, `macsi`, `certificatDeHomologation`) values(0,'','','','','','','','','','','','','','','','');
commit;
select max(id_livrable) into maxlivrable from livrables;
update grupo set id_livrable = maxlivrable where id_grupo = cont;
commit;
end loop;
END $$
DELIMITER ;
E a mensagem de erro retornada pelo MySQL Query Browser é:
Script line: 7 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 'loop
insert into livrables(`id_livrable`, `plan2d3d`, `pcp`, `rcm`, `' at line 6
Será que alguém pode me ajudar?
Abraços!