Bonjour à tous,

Je tente vainement de créer une table temporaire au moyen d'une procédure que voici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
call testtbl('50000000');
alors je reçois une erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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