Salut,

Je suis dans le cadre d'une appli qui doit pouvoir effectuer des traitements simultanés. Je suis donc obligé de gérer des noms de tables dynamique dans mes curseurs.

J'ai donc le code suivant :

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
16
17
18
CREATE DEFINER=`root`@`localhost` PROCEDURE `exemple`(
	IN noTable INT(8)
)
BEGIN
 
	-- création de la table du traitement en cours sur une structure de base
	SET @s = CONCAT('CREATE TABLE T_TRAITEMENT_',noTable,' LIKE T_STRU_TRAITEMENT');
	PREPARE stmt FROM @s;
	EXECUTE stmt;
 
	-- remplissage de la table à traiter
	SET @s = CONCAT('INSERT INTO T_TRAITEMENT_',noTable,'(AA, BB, CC, ,DD) SELECT AA, BB, CC, DD FROM T_IMPORT_', noTable);
	PREPARE stmt FROM @s;
	EXECUTE stmt;
 
	-- le curseur... et c'est la que ça coince...
 
END
Il me paraît impératif de pouvoir gérer une variable lors de la déclaration du curseur puisque je dois pouvoir gérer des traitements simultanés.

Hors malgré mes recherches, j'ai l'impression que ce n'est pas possible en MySQL.

Existe t-il une parade ?

Merci d'avance pour vos réponses !