Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Outils
Outils Forum d'entraide sur les outils pour MySQL. Avant de poster -> Outils MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/04/2008, 13h21   #1
Membre habitué
 
Inscription : mars 2007
Messages : 337
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 337
Points : 143
Points : 143
Par défaut Boucle dans un fichier .sql

Bonjour,

Je débute tout juste avec le SQL en mode batch.

Je voudrais faire un fichier .sql à exécuter en mode batch.

Voici le contenu du fichier :

Code :
1
2
3
4
5
6
7
8
9
10
SET @old := (SELECT idmetier FROM metier ORDER BY idmetier LIMIT 0,1);
SELECT @old;
SET @compteur := (SELECT count(*) FROM metier WHERE idmetier>@old);
SELECT @compteur;
 
WHILE @compteur <> 0 Loop
	SET @old := (SELECT idmetier FROM metier WHERE idmetier > @old ORDER BY idmetier LIMIT 0,1);
	SET @compteur := (SELECT count(*) FROM metier WHERE idmetier > @old);
	SELECT @compteur;
End loop ;
Voilà, je ne sais pas s'il faut faire des déclarations ou non avant ni rien, mais tout ce que je sais c'est que ça ne fonctionne pas, pourtant la syntaxe me semble bonne:
c'est une erreur de syntaxe 42000
"erreur de syntaxe près de 'WHILE @compteur <> 0 LOOP
SET @old := (SELECT idmetier FROM me' à la ligne 1"

Ensuite, 2e message d'erreur : "Erreur de syntaxe près de 'END LOOP' à la ligne 1"


Avez-vous une idée de ce à que ces erreurs sont dûes ?

Je n'y comprends rien moi

HELLLLP !
__________________
(\ _ /)
(='.'=) Voici Lapinou. Aidez le à conquérir le monde
(")-(") en le reproduisant.
mouaa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2008, 18h05   #2
ced
Rédacteur/Modérateur

 
Avatar de ced
 
Homme Cédric Duprez
Inscription : avril 2002
Messages : 3 823
Détails du profil
Informations personnelles :
Nom : Homme Cédric Duprez
Âge : 36
Localisation : France, Loiret (Centre)

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2002
Messages : 3 823
Points : 6 409
Points : 6 409
Bonjour,

Les boucles ne sont utilisable, je crois bien, que au sein d'une procédure stockée ou d'une fonction... Il faut donc créer une procédure et la faire appeler par un traitement batch.
Pour pouvoir faire ça, il faut être au moins en version 5.0.2 de MySQL.
De plus, la syntaxe du WHILE est légèrement différente de celle que tu as essayée. Voilà le lien vers la documentation MySQL qui explique les boucles WHILE.

ced
ced est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h41.


 
 
 
 
Partenaires

Hébergement Web