2010-11-16 33 views
0

requête: load data infile 'systemmessage.txt' ignore into table systemmessage (message) lines starting by 'a,' terminated by '\0' ignore 1 linesCHARGE erreur de syntaxe DATA INFILE

me donne une erreur de syntaxe près de 'lignes commençant par'. Si je supprime la partie «en commençant par», l'erreur est maintenant «terminée par». Si j'enlève cela aussi, l'erreur est avec 'ignore 1 lines'. Où diable est le problème ?? Le fichier existe, la table existe, si j'enlève toutes les vérifications qu'il charge, mais avec les mauvaises données.

+0

préparer à nouveau votre systemmessage.txt à suivre exactement les spécifications mysql - http://dev.mysql.com/doc/refman/5.1/en/load-data.html – ajreal

+0

OMG le problème est pas SystemMessage .SMS! C'est une erreur de syntaxe SQL! Je suis prêt à exploser avec ce problème incroyablement stupide et vous me suggérez quelque chose que j'ai lu des centaines de fois au cours des dernières heures! Quoi qu'il en soit, j'ai finalement réussi à dépasser cela, mais j'ai perdu plus de nerfs que la semaine passée ensemble ... – jurchiks

+0

vous devriez juste prouver que votre systemmessage.txt est 100% conforme à la spécification mysql, avez-vous essayé d'insérer une seule ligne (single enregistrer) pour assurer au moins, il va travailler pour 1 ligne? – ajreal

Répondre

1

Vous avez juste besoin de déplacer la liste des colonnes à la fin de l'instruction SQL.

Comme cela est décrit dans le manuel, les informations de format (lignes commençant par, sauter 1 lignes, etc.) doivent être spécifiées avant la liste des colonnes (en option):

http://dev.mysql.com/doc/refman/5.1/en/load-data.html

est ici la requête fixe:

load data infile '/tmp/systemmessage.txt' 
ignore into table systemmessage 
lines starting by 'a,' 
terminated by '\0' 
ignore 1 lines 
(message)