Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en 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 20/08/2011, 12h41   #1
Invité de passage
 
Homme
Chef de projet en SSII
Inscription : mai 2011
Messages : 11
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 11
Points : 4
Points : 4
Par défaut boucle de remplissage

Bonjour,

JE souhaitais réaliser une petite boucle pour remplir automatiquement une table

J'ai essayé d’écrire les lignes suivantes, mais qui ne fonctionnent pas vraiment.

Donc, ma première question: est ce possible? 2eme question: quelle est l'erreur et comment puis je le reformuler
si vous pouvez m aider. faut il écrire le code dans un fichier .sql?


Je vous remercie par avance.



Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CREATE TABLE member(
id INT(20) NOT NULL AUTO_INCREMENT,
nom VAR CHAR(60),
PRIMARY KEY (id)
);
 
 
 
DECLARE nbr INTEGER DEFAULT 0; 
 
remplissageauto: REPEAT 
   SET nbr = nbr + 1;
   SELECT concat("member",@nbr);
 INSERT INTO member(nom) VALUES ( SELECT concat("member",@nbr) );
UNTIL nbr < 9 
END REPEAT remplissageauto;
kpatson est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 10h07   #2
Membre confirmé
 
Avatar de GyZmoO
 
Homme Mickaël
Ingénieur développement logiciels
Inscription : février 2006
Messages : 402
Détails du profil
Informations personnelles :
Nom : Homme Mickaël
Âge : 27
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : février 2006
Messages : 402
Points : 238
Points : 238
Envoyer un message via MSN à GyZmoO
Aie aie aie,

Une petite révision des bases serait pas mal

En attendant voici une version qui fonctionne, à toi de la modifier selon tes besoins :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
CREATE TABLE member(
id INT(20)  NOT NULL PRIMARY KEY AUTO_INCREMENT,
nom VARCHAR(60)
);
 
 
DROP PROCEDURE IF EXISTS FILL_MY_TABLE;
DELIMITER |
 
 
CREATE PROCEDURE FILL_MY_TABLE()
BEGIN
 
  DECLARE nbr INTEGER DEFAULT 0;
 
  REPEAT
  SET nbr = nbr + 1;
 
  INSERT INTO member(nom) VALUES (concat("member",nbr) );
  UNTIL (nbr > 9) END REPEAT;
 
END |   
 
DELIMITER ;
 
CALL FILL_MY_TABLE();
Pose des questions si tu cherches un truc particulier, des gens sur ce forum pourront te répondre !

@+
__________________
define: Programmeur : Celui qui résout un problème que vous n'aviez pas, d'une façon que vous ne comprenez pas.
GyZmoO est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2011, 20h27   #3
Invité de passage
 
Homme
Chef de projet en SSII
Inscription : mai 2011
Messages : 11
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 11
Points : 4
Points : 4
merci GyZmoO
oui, une bonne révision des bases se fera à tête reposée

Cdt
kpatson est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h36.


 
 
 
 
Partenaires

Hébergement Web