Création d'une table temporaire dans une procédure
Bonjour à tous,
Je tente vainement de créer une table temporaire au moyen d'une procédure que voici :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
use MyDB;
drop procedure if exists testtbl;
delimiter $$
create procedure testtbl(in code varchar(8)) language sql deterministic
begin
set @sql1=concat("drop temporary table if exists tmptbl;");
set @sql2=concat("create temporary table tmptbl as (select * from entites where code_entite='",code,"');");
set @sql=concat(@sql1,@sql2);
select @sql;
prepare str from @sql;
execute str;
deallocate prepare str;
end$$
delimiter ; |
Pas de problème pour cette partie.
Par contre, lorsque je demande l'exécution
Code:
call testtbl('50000000');
alors je reçois une erreur
Code:
ERROR 1064 (42000): 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 'create temporary table tmptbl as (select * from entites where code_entite='50000' at line 1
Je ne vois pas où se situe l'erreur ni comment corriger.
Merci pour votre aide