Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Débuter
Débuter Forum d'entraide pour débuter avec 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 22/09/2011, 11h12   #1
Invité régulier
 
Homme
Ingénieur développement logiciels
Inscription : août 2008
Messages : 19
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Tourisme - Loisirs

Informations forums :
Inscription : août 2008
Messages : 19
Points : 8
Points : 8
Par défaut Créer une boucle de requêtes MySql pour générer un grand nombre d'enregistrements

bonjour!
Je souhaiterai mettre en place une boucle qui permette de générer un grand nombre d'enregistrements par la requête INSERT. Précisément, j'ai plusieurs attributs numériques entiers dont je voudrais générer automatiquement toutes les combinaisons.

J'ai jeté un coup d'oeil à l'utilisation procédurale de MySql, mais ça ne semble pas être la solution.
Il me faudrait peut-être utiliser le langage PHP, ou Javascript?
En ce cas, comment exécuter ce fichier? J'ai regardé un peu la syntaxe nécessaire pour le PHP.

Merci bien pour votre réponse.
Ghalloun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 11h24   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 028
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 028
Points : 18 321
Points : 18 321
Envoyer un message via MSN à CinePhil
Inspire toi de ce billet de SQLPro.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2011, 20h28   #3
Invité régulier
 
Homme
Ingénieur développement logiciels
Inscription : août 2008
Messages : 19
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Tourisme - Loisirs

Informations forums :
Inscription : août 2008
Messages : 19
Points : 8
Points : 8
Par défaut solution

Je me suis inspiré de ce message sur SQLpro, et j'ai écrit le code suivant, qui fonctionne bien :
Code :
1
2
3
4
5
6
7
8
9
10
INSERT INTO `table`(`j1`,`j2`,`j3`,`j4`,`j5`,`j6`,`j7`)
SELECT T1.`j1`, T2.`j2`, T3.`j3`, T4.`j4`, T5.`j5`, T6.`j6`, T7.`j7`
FROM `microcycles` AS T1
INNER JOIN `table` AS T2
INNER JOIN `table` AS T3
INNER JOIN `table` AS T4
INNER JOIN `table` AS T5
INNER JOIN `table` AS T6
INNER JOIN `table` AS T7
ON T1.`j1`>0 AND T2.`j2` >0 AND T3.`j3`>0 AND T4.`j4`>0 AND T5.`j5`>0 AND T6.`j6`>0 AND T7.`j7`>0
Ce code agit alors qu'il y a déjà dans la table comme des vecteurs normés : un vecteur avec tous ses champs à 0 sauf le j1 à 1, puis le j1 à 2,...puis le j2 à 1, ...
C'est une famille génératrice de tout l'ensemble, en quelque sorte.

Le seul hic, c'est que je dois créer 10^7 combinaisons. Pour 4^7, ça passe. Mais je suis passé directement à 10 après. Je vais donc y aller progressivement, et si je ne peux pas faire autrement que de bloquer PhpMyAdmin , je tâcherai de le faire en plusieurs fois, en faisant attention à n'oublier aucun cas.

En tout cas, merci beaucoup pour le tuyau.
Ghalloun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/09/2011, 02h08   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 028
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 028
Points : 18 321
Points : 18 321
Envoyer un message via MSN à CinePhil
Plutôt que d'être pénalisé par les limites de temps de phpMyAdmin, tu peux passer une procédure SQL directement dans la console MySQL.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil 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 17h37.


 
 
 
 
Partenaires

Hébergement Web