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 06/11/2006, 20h19   #1
Invité de passage
 
Inscription : septembre 2006
Messages : 8
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 8
Points : 2
Points : 2
Par défaut Créer 4000 enregistrements dans une tables auto-incrementées

Bonsoir,
Je souhaiterai connaitre la requete SQL afin de créer 4000 enregistrements auto-incrementés dans une table vierge, exp :

Nom de la table : jos_xxx_emn

id userid status popup remindersent
1 1 0 0 2
....
4000 4000 0 0 2

Merci pour votre aide !
zonekris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2006, 00h01   #2
Rédacteur
 
Avatar de Biglo
 
Inscription : juillet 2002
Messages : 537
Détails du profil
Informations personnelles :
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : juillet 2002
Messages : 537
Points : 561
Points : 561
Salut,

Le plus simple reste quand même une procédure stockée avec une boucle !

Sinon, tu utilises une grosse table déjà existante :

Code :
1
2
3
4
INSERT INTO t
SELECT NULL, 0, 0, 2
FROM grosseTable
LIMIT 4000
Bref : bidouille
Biglo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2006, 01h11   #3
Rédacteur/Modérateur
 
Avatar de N1bus
 
Inscription : janvier 2003
Messages : 2 018
Détails du profil
Informations personnelles :
Âge : 47
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : janvier 2003
Messages : 2 018
Points : 1 992
Points : 1 992
Code :
1
2
3
4
FOR($i = 1; $i <= 4000; $i ++){
mysql_query("INSERT INTO tabase (userid, status, popup, remindersent )
VALUES ('$i', 0, 0, 2)");
}
je précise que le champ id est PRIMARY_KEY auto_increment
donc on a pas besoin de l'inserer
N1bus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2006, 09h08   #4
Membre éclairé
 
Avatar de Space Cowboy
 
Inscription : avril 2005
Messages : 495
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 495
Points : 306
Points : 306
J'imagine que l'userid sera différent de l'ID.
Space Cowboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2006, 10h28   #5
Rédacteur/Modérateur
 
Avatar de N1bus
 
Inscription : janvier 2003
Messages : 2 018
Détails du profil
Informations personnelles :
Âge : 47
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : janvier 2003
Messages : 2 018
Points : 1 992
Points : 1 992
Citation:
Envoyé par Space Cowboy
J'imagine que l'userid sera différent de l'ID.
ben, il a dit :
Citation:
1 . 1 . 0 . 0 . 2
jusqu'à
4000 . 4000 . 0 . 0 . 2
il semblerait que l'user_id soit le meme que l'id ??
je ne vois pas à quoi ça sert mais bon ...
N1bus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2006, 19h55   #6
Invité de passage
 
Inscription : septembre 2006
Messages : 8
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 8
Points : 2
Points : 2
J'ai viens d'essayer :

FOR($i = 1; $i <= 4000; $i ++){
mysql_query("INSERT INTO tabase (userid, status, popup, remindersent )
VALUES ('$i', 0, 0, 2)");
}

Mais ca ne fonctionne pas, voici l'erreur :
Erreur

requête SQL :

FOR (

$i =1

MySQL a répondu:


#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 'FOR($i = 1' at line 1

En effet, les champs id et userid doivent avoir les memes chiffres !
et le champs ID est configuré :

Champ Type Interclassement Attributs Null Défaut Extra Action
id int(11) UNSIGNED Non auto_increment


Merci pour votre aide
zonekris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2006, 20h54   #7
Rédacteur
 
Avatar de Biglo
 
Inscription : juillet 2002
Messages : 537
Détails du profil
Informations personnelles :
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : juillet 2002
Messages : 537
Points : 561
Points : 561
Le code que N1bus t'a donné est un code PHP, et ne s'exécute donc pas tel quel sur MySQL
Biglo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2006, 20h54   #8
Rédacteur/Modérateur
 
Avatar de N1bus
 
Inscription : janvier 2003
Messages : 2 018
Détails du profil
Informations personnelles :
Âge : 47
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : janvier 2003
Messages : 2 018
Points : 1 992
Points : 1 992
la boucle FOR était une boucle PHP.

Je pensais que tu executais cela depuis ton programme PHP.

Qu'as tu utilisé pour envoyer la requete ?
N1bus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2006, 22h40   #9
Invité de passage
 
Inscription : septembre 2006
Messages : 8
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 8
Points : 2
Points : 2
Dans phpmyadmin !
zonekris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2006, 00h49   #10
Rédacteur/Modérateur
 
Avatar de N1bus
 
Inscription : janvier 2003
Messages : 2 018
Détails du profil
Informations personnelles :
Âge : 47
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : janvier 2003
Messages : 2 018
Points : 1 992
Points : 1 992
mets le code tel-quel dans un fichier avec les balises PHP, la connexion et parametres de ta base, enregistre le fichier puis place le sur ton serveur et enfin, tape l'url de la page pour exécuter les requetes
N1bus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2006, 14h17   #11
Invité de passage
 
Inscription : septembre 2006
Messages : 8
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 8
Points : 2
Points : 2
Ok, mais il n'est pas possible de directement tapper une requette sql dans phpmyadmin ?
zonekris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2006, 22h41   #12
Rédacteur
 
Homme Jean-Pierre
Inscription : août 2005
Messages : 333
Détails du profil
Informations personnelles :
Nom : Homme Jean-Pierre
Âge : 26
Localisation : Suisse

Informations forums :
Inscription : août 2005
Messages : 333
Points : 442
Points : 442
Citation:
Envoyé par zonekris
Ok, mais il n'est pas possible de directement tapper une requette sql dans phpmyadmin ?
Oui c'est possible en utilisant une procédure stockée. (MySQL 5).
Guardian_7 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2006, 07h18   #13
Invité de passage
 
Inscription : septembre 2006
Messages : 8
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 8
Points : 2
Points : 2
Je suis novice, merci de me donner la syntaxe complete
zonekris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2006, 09h22   #14
Rédacteur/Modérateur
 
Avatar de N1bus
 
Inscription : janvier 2003
Messages : 2 018
Détails du profil
Informations personnelles :
Âge : 47
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : janvier 2003
Messages : 2 018
Points : 1 992
Points : 1 992
ben c'est dans le lien que Guardian_7 t'a donné :
http://dev.mysql.com/doc/refman/5.0/fr/stored-procedure-syntax.html
N1bus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2006, 20h18   #15
Invité de passage
 
Inscription : septembre 2006
Messages : 8
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 8
Points : 2
Points : 2
Sorry d'insister, mais c trop complique vos trucs!!
Moi je voulais executer une requette SQL directement dans l'interface PhpMyadmin ! comme je fais d'habitude, merci à tous pour la solution
zonekris 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 14h40.


 
 
 
 
Partenaires

Hébergement Web