Puis-je exécuter une boucle dans MySQL sans l'aide d'une procédure/fonction?
Pour tester, est-il possible d'exécuter une boucle à partir de MySQL workbench ou d'un outil similaire? J'ai essayé mais j'ai reçu un message d'erreur.
Si c'est possible, veuillez fournir un exemple simple, je peux exécuter.
De quoi êtes-vous en boucle ???
Voulez tout simplement pour générer des données de test électronique.g
Voulez tout simplement pour générer des données de test électronique.g
for(i=0 to 100) insert ... values (i,'test'+i)
ce genre de chose. Je pense que Thanu de l'utilisation d'un temp proc est adapté.OriginalL'auteur Mr. Boy | 2013-02-06
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas faire une boucle dans un éditeur SQL sans une procédure stockée. J'utilise TOAD for MySQL.
Rapidement une procédure stockée doit faire le travail:
CREATE PROCEDURE proc_loop_test() BEGIN DECLARE int_val INT DEFAULT 0;
MySQL a dit:#1064 - 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 '' at line 3
". Ce qui me manque?Désolé, je ne peux pas dire ce qui est vraiment mal sans voir votre complet exact proc code. Parce que c'est peut être juste un point-virgule manquant.
eu le même problème. Résolu en changeant le séparateur avant la procédure pour
$$
et l'évolution de retour à;
par la suite. Plus d'infos: mysqltutorial.org/stored-procedures-loop.aspxOriginalL'auteur Thanu
Il y a un truc avec la limitation des cas d'utilisation qui est "en boucle".
J'ai voulu créer un grand (1~2 millions d'euros) ligne de tableau d'entiers aléatoires pour un test:
J'ai donc rapidement juste gardé en doublant le nombre de lignes jusqu'à ce que j'ai eu ce dont j'avais besoin.
OriginalL'auteur Kache
Si c'est que vous ne voulez bloquer le thread en cours puis utilisez
select sleep(seconds);
sinon, vous pouvez utiliser une procédure stockée (si il y a quelque chose que vous voulez passer en boucle) ou UDF (user defined function).OriginalL'auteur Mike Lischke
Supposé que vous avez déjà un arbitraire table myOldTable qui est suffisamment long vous pouvez utiliser l'astuce suivante:
OriginalL'auteur Volker Raab