Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1261 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Requête multi-instructions avec MySQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Requête multi-instructions avec MySQL

n°1570322
groscul
chausson aux pommes
Posté le 05-06-2007 à 14:12:17  profilanswer
 

Voila, je dois effectuer une migration de données d'un fichier vers ma table (une ligne du fichier correspond a une insertion). Mon fichier est assez gros (plus de 10000 lignes). Pour l'instant, j'ai une requete du style
"INSERT INTO ma_table (... , ... , ...);" que j'éxécute en boucle (au meme moment que je récupère les lignes du fichier).
 
Le problème, c'est que cela prend un temps fou pour effectuer la migration (plus de 30 secondes).  
 
J'avais donc pensé pouvoir concaténer tous les insert dans une seule énorme requête que je n'exécuterais qu'une seule fois, mais je n'y arrive pas... il semble que la fonction mysql_query() ne supporte pas plus d'une instruction par requête. Pourtant, quand je teste mon énorme requête dans l'interface de PhpMyAdmin, il arrive très bien à tout exécuter a la suite, et c'est beaucoup plus rapide que mon algo actuel (1 requete par instruction).
 
Voila, si quelqu'un a une solution, je suis au bord du gouffre la...
 

mood
Publicité
Posté le 05-06-2007 à 14:12:17  profilanswer
 

n°1570325
flo850
moi je
Posté le 05-06-2007 à 14:21:45  profilanswer
 

tu peux faire plusieurs insertions au sein de la meme requeet :  
( de mémoire )  
insert into matable(chp1,chp2,..) VALUES (val1,val2,..) , (val5,val14,..)

n°1570328
cgo2
Dum spiro spero
Posté le 05-06-2007 à 14:30:05  profilanswer
 

Tu peux aussi envisager d'utiliser le client mysql en ligne de commande, qui n'est pas soumis au timeout d'apache.


---------------
When it's from Finland it's good.  - Mon blog
n°1570344
anapajari
s/travail/glanding on hfr/gs;
Posté le 05-06-2007 à 14:52:31  profilanswer
 
n°1570353
dwogsi
Défaillance cérébrale...
Posté le 05-06-2007 à 15:10:17  profilanswer
 

cgo2 a écrit :

Tu peux aussi envisager d'utiliser le client mysql en ligne de commande, qui n'est pas soumis au timeout d'apache.


d'apache?


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1570366
cgo2
Dum spiro spero
Posté le 05-06-2007 à 15:21:50  profilanswer
 


 
je suppose qu'il parle de ça quand il fait allusion aux 30 secondes.


---------------
When it's from Finland it's good.  - Mon blog
n°1570407
dwogsi
Défaillance cérébrale...
Posté le 05-06-2007 à 16:08:24  profilanswer
 

J'aurais plutôt pensé à quelque chose style php...


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1571553
groscul
chausson aux pommes
Posté le 07-06-2007 à 14:38:36  profilanswer
 

C'est toujours moi. La fonction LOAD DATE INFILE qu'a proposé anapajari semble être la meilleure solution. Cependant, j'ai une erreur que je n'arrive absolument pas a voir, j'ai meme refait l'exemple montré sur un site parlant de cette fonction et mon erreur persiste....
ya une configuration particulière a avoir ?

n°1571559
flo850
moi je
Posté le 07-06-2007 à 14:44:01  profilanswer
 

ne nous donen surtout pas l'erreur en question , ca nous aiderai  [:noxauror]

n°1571639
groscul
chausson aux pommes
Posté le 07-06-2007 à 16:13:16  profilanswer
 

Je pars du principe que vous etes des oufs, c'est tout
 
Ma requete :
LOAD DATA INFILE ‘fichier.csv’
INTO TABLE members
FIELDS
TERMINATED BY ';'
ENCLOSED BY ‘”’
ESCAPED BY '\\'
LINES
STARTING BY ''
TERMINATED BY '\n'
(id, champ1, champ2)
 
L'erreur :
#1064 - Erreur de syntaxe pr�s de '‘fichier.csv’
INTO TABLE members
FIELDS
TERMINATED BY ';'' � la ligne 1  
 

mood
Publicité
Posté le 07-06-2007 à 16:13:16  profilanswer
 

n°1571642
anapajari
s/travail/glanding on hfr/gs;
Posté le 07-06-2007 à 16:17:01  profilanswer
 

s'koi ces quotes moldaves autour de ton nom de fichier?

n°1571645
groscul
chausson aux pommes
Posté le 07-06-2007 à 16:20:19  profilanswer
 

Oh mais non quoi... merci bien !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Requête multi-instructions avec MySQL

 

Sujets relatifs
Récupéré les cinq dernieres entrée mysqlrequête SQL avec ActionScript?
[RESOLU] ACCESS Différence entre une requète externe/interne à ACCESSUn CMS du type Plone en php/mysql
[resolu]Jointure d'un COUNT dans une requêteMysql et GRANT
Apache/mySQL sur Windows CEApache et Mysql
synchro FTP + mysql[ORACLE] Problème execution requête SELECT
Plus de sujets relatifs à : Requête multi-instructions avec MySQL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR