MySQL Insert avec Boucle While
Je suis en train de créer un groupe d'enregistrements dans ma base de données MySQL. C'est un temps de création, donc je n'essaie pas de créer une procédure stockée. Voici mon code:
BEGIN
SET i = 2376921001;
WHILE (i <= 237692200) DO
INSERT INTO `mytable` (code, active, total) values (i, 1, 1);
SET i = i+1;
END WHILE;
END
Voici l'erreur:
[ERREUR dans la requête 1] Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre versions du serveur MySQL pour la bonne syntaxe à utiliser près de 'ENSEMBLE i = 2376921001
WHILE (i <= 237692200) NE
INSÉREZ DANS coupon
(couponCod' à la ligne 2
L'exécution arrêtée!
J'ai essayé de Déclarer avec les mêmes résultats. Le Code ci-dessous:
BEGIN
DECLARE i INT unsigned DEFAULT 2376921001;
WHILE (i <= 237692200) DO
INSERT INTO `mytable` (code, active, total) values (i, 1, 1);
SET i = i+1;
END WHILE;
END
Une autre chose que j'ai essayé est avec @i au lieu de simplement je. Même erreur.
N'importe qui peut voir ce que je fais de mal?
le code est un varchar. Je reçois la même erreur lorsque je l'exécute : BEGIN DECLARE @je VARCHAR unsigned par DÉFAUT 1001; WHILE (i <= 2200) FAIRE INSÉRER DANS
coupon
(couponCode, active, totalUses) les valeurs (i, 1, 1); i = i+1; FIN tant que; FINOriginalL'auteur jessier3 | 2014-11-17
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas utiliser
WHILE
comme ça; voir: mysql DÉCLARER en dehors de la procédure stockée comment?Vous avez de mettre votre code dans une procédure stockée. Exemple:
Violon: http://sqlfiddle.com/#!2/a4f92/1
Sinon, générer une liste de
INSERT
les instructions à l'aide du langage de programmation que vous aimez; pour un temps de la création, elle doit être fine. Comme un exemple, voici un Bash one-liner:Par le fait, vous avez fait une faute de frappe dans vos numéros; 2376921001 a 10 chiffres, 237692200 seulement 9.
Vous avez mal compris; il est parfaitement possible de MySQL. J'ai ajouté des exemples de code et d'un violon à préciser. Mais n'hésitez pas à utiliser l'approche alternative à la place; ce qui vous convient.
Cela a été il y a un moment et j'ai oublié de revenir et de le commenter. Cela a fonctionné. Je vous remercie pour votre aide.
J'ai une
#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
avec 5.1 ... concernant la documentation qui devrait fonctionner :/Veuillez vérifier votre instruction SQL avec un hex viewer; il peut y avoir certains invisible de caractères Unicode.
OriginalL'auteur Ruud Helderman
OriginalL'auteur Lily.He