Auteur |
Message |
Lynx
Messages : 7
Inscrit le : 08/01/2005 |
Posté le 08/01/2005 à 17:49:24
Message N°1 #
|
Bonjour à tous!
Je viens d'adopter eSKUel, et je commence déjà à l'apprécier fortement .
Merci beaucoups
Mon problèeme est le suivant;
J'ai un fichier sql contenant 228'000 INSERT's (généré par mon pc) et je veux insérer ces 228'000 entrée dans ma base de donnée (sur un serveur web), j'ai uplaodé mon fichier sql dans le répértoire incoming/ de eSKUel, jusque là tout se passe bien:
Par contre lorsque je clique sur "Insertion dump", je dois attendre 2-3 minutes, puis il me ressort l'erreur:
Erreur MySQL :
Invalid SQL: INSERT INTO map VALUES('', '1', '1', 'ocean')
INSERT INTO map VALUES('', '1', '2', 'ocean')
INSERT INTO map VALUES('', '1', '3', 'ocean')
INSERT INTO map VALUES('', '1', '4', 'ocean')
[...]
INSERT INTO map VALUES('', '144', '391', 'ocean')
INSERT INTO map VALUES('', '144', '392', 'ocean')
INSERT INTO map VALUES('', '144', '393', 'ocean')
INSERT I
Il ne ressort donc pas toutes les lignes, en gros je dois comprendre que mon fichier est trop gros et comporte trop de caractères, ou bien?
Que dois-je faire pour résoudre ce problème?
Merci!
______________________________
Message édité par Lynx
EDIT:
Je précise que j'ai essayé de passer une seule ligne en requête mannuelle, et elle est très bien passée. |
|
renaud
Messages : 321
Inscrit le : 10/05/2002 |
Posté le 08/01/2005 à 19:00:50
Message N°2 #
|
Essaie de splitter ton fichier de requêtes SQL, genre 10000 par fichier, puis moins si ça ne passe toujours pas ...
A moins que ce ne soit une erreur de syntaxe dans une requête ...
Sinon, le message d'erreur n'est pas plus complet ??? Parce que là y a aucune info sur l'erreur ... |
|
Lynx
Messages : 7
Inscrit le : 08/01/2005 |
Posté le 09/01/2005 à 13:18:59
Message N°3 #
|
Merci pour ta réponse.
Donc en gros je vais devoir faire un petit script php qui divise un fichier texte avec beaucoups de lignes en plusieurs fichiers textes avec peu de lignes.
Je ne pense qpas que c'est une erreur de syntaxe dans une requête car ces lignes ont été générée par php sur mon ordi avec deux boucles for, et normalement php ne se trompe pas (encore heureux!) et je ne pense pas non plus que j'ai fait une faute de mon script de sorte qu'il génére une seule ligne fausse.
Sinon, non le message d'erreur n'est pas plus complet (malgré ses nombreuses lignes), effectivement c'est étrange...
Merci encore, je vais essayer de séparer ce fichier tete et je vous dirais des nouvelles! |
|
renaud
Messages : 321
Inscrit le : 10/05/2002 |
Posté le 09/01/2005 à 14:30:22
Message N°4 #
|
Pour les erreurs de syntaxe, on sait jamais, peut être un caractère spécial (' par exemple) qui aurait été mal echappé ("protégé") ... |
|
Lynx
Messages : 7
Inscrit le : 08/01/2005 |
Posté le 09/01/2005 à 16:43:50
Message N°5 #
|
Ahh, j'ai trouvé le problème!
Je ne pensais pas qu'on avait besoin d'être si précis en sql (c'est à dire, je pensais que la syntaxe était moins rigide).
J'ai remplacé ça:
INSERT INTO map VALUES('', '1', '2', 'ocean')
par ça:
INSERT INTO map VALUES('', '1', '2', 'ocean');
et ça fonctionne à merveille!
Quand on ajoute plusieurs lignes il faut donc mettre un ; à la fin. |
|
maverick
Messages : 619
Inscrit le : 04/04/2002 |
Posté le 09/01/2005 à 16:50:26
Message N°6 #
|
Bien vu
____________________
|
|
Lynx
Messages : 7
Inscrit le : 08/01/2005 |
Posté le 09/01/2005 à 18:39:20
Message N°7 #
|
Bah merci les gars, c'est bon j'ai tout réussi maintenant, j'ai coupé mon fichier de 228'000 lignes en 46 petits fichiers de 5'000 lignes et tout passe à merveille |
|
renaud
Messages : 321
Inscrit le : 10/05/2002 |
Posté le 10/01/2005 à 15:23:12
Message N°8 #
|
Comment que j'suis trop fort !!! Je le savais moi que c'était une (plutôt 228000 ) erreur de syntaxe !!!
Le pire c'est que j'avais pensé à cette histoire de ; à la fin de chaque requête mais je me suis dit "bah c'est MySQL ça doit passer comme ça" ... Donc je ne suis pas si fort que ça en fait |
|