Salut,
fais une procédure stockée avec un curseur qui concatène les valeurs de chaque ligne dans une chaine avec l'insert qui va au début.
si tu connais à l'avance le schéma tu initialises ta chaine de commandes comme ça au début de la procédure:
declare ordres text default null;
Dans la boucle de lecture du curseur, tu auras un truc du genre:
set ordres=concat_ws(",",ordres,"(", ... ,")");
tu remplaces les "..." par la liste des variables (déclarées au début de ta procédure bien sur) qui ont reçu le fetch de la ligne courante de ton curseur
Et, une fois fini la lecture des résultats, tu fais:
set ordres=concat("insert into ",table_dest,"( ... ) values",ordres,";")
Tu remplaces les "..." par la liste de tes champs.
Le résultat, un insert compact si tu as des résultats retournés ou null donc vide si il n'y en a pas.
Partager