ОШИБКА MySQL 1064 причина (ЗАГРУЗКА ДАННЫХ INFILE) - PullRequest
2 голосов
/ 18 марта 2011

Когда я запускаю эти команды SQL в MySQL

LOAD DATA INFILE 'myFile.csv' INTO myTable FIELDS TERMINATED BY ','

Я получаю эту ошибку:

ERROR 1064 (42000) at line 1: 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 'TO myTable FIELDS TERMINATED BY ','' at line 1

Это сообщение не очень полезно, оно может появиться для одного из бесчисленных синтаксисовошибки.

Как узнать, какую ошибку я совершил с таким обобщенным сообщением об ошибке «это не сработает»?

Ответы [ 2 ]

4 голосов
/ 18 марта 2011

1001 * попробовать *

LOAD DATA INFILE 'myFile.csv' INTO TABLE myTable 
FIELDS TERMINATED BY ','

(chage TO INTO TABLE)

Взято из документации

1 голос
/ 11 января 2014

Эта ошибка MySQL:

You have an error in your SQL syntax; check the manual.

Это самый раздражающий ответ, который может дать MySQL. Существует около миллиарда ошибок, которые вы могли бы сделать, что приводит к этомуошибка.Это одна из причин, по которой MySQL отстой, и вы должны чувствовать себя плохо, продолжая использовать его.PostgreSQL никогда не выдаст такое сообщение об ошибке.

Вам придется разделить и победить вашу проблему.

Идеи:

  1. Еще раз взгляните на использование этих символов: {}[]|\'";:,<.>/?!@#$%^&*()_+ в своем выражении SQL, чтобы убедиться, что вы поставили их в нужное место.Если они неуместны или не имеют надлежащего заполнения пробелов, это может привести к этой ошибке.

  2. Убедитесь, что все ваши двойные и одинарные кавычки имеют соответствующих партнеров.Иногда анализатор SQL сбивается с толку, если вы что-то не делаете правильно.

  3. Повторите весь ваш ответ, чтобы убедиться, что в вашем запросе нет символов Юникода.

  4. Убедитесь, что пробелами, разделяющими ваши слова, являются пробелы и обычные символы новой строки, а не пробелы ascii, посторонние переводы строк или пробелы.

  5. Убедитесь, что вы используете правильные ключевые слова вправильный порядок.И чтобы вы не опускали ключевое слово.«INTO TABLE бла» - это не то же самое, что «Into бла», и варианты этой темы бесконечны.

  6. Убедитесь, что у вас есть точки с запятой, где они принадлежат.Удалите те, которые не принадлежат.

Удалите MySQL, и, если кто-нибудь спросит, почему, тогда скажите: «Потому что разработчики забыли связать конкретные ошибки со значимыми уникальными сообщениями об ошибках».

...