Bonjour à tous,
Je tente vainement de créer une table temporaire au moyen d'une procédure que voici :Pas de problème pour cette partie.
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 ;
Par contre, lorsque je demande l'exécutionalors je reçois une erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part call testtbl('50000000');
Je ne vois pas où se situe l'erreur ni comment corriger.
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
Merci pour votre aide
Partager