Ошибка при импорте файла .xslx / .csv в базу данных MySQL

523
Poete Maudit

У меня есть простой файл .xlsx, который я заполнил вручную и который выглядит так: Ошибка при импорте файла .xslx / .csv в базу данных MySQL

Когда я открываю этот файл в TextEdit, ничего не появляется, и (следовательно) этот файл не может быть импортирован в MySQLServer в PhpMyAdmin.

Я сохранил тот же файл, что и CSV. Когда я открываю этот файл в TextEdit, то вот что я получаю:

id, questions, keywords, answer  1,here1,here2,here3 

и (следовательно) .csv не может быть напрямую импортирован в MySQLServer в, PhpMyAdminно я получаю следующую ошибку:

Error Static analysis:  5 errors were found during analysis.  A symbol name was expected! A reserved keyword can not be used as a column name without backquotes. (near "int" at position 46) At least one column definition was expected. (near "int" at position 46) Unexpected beginning of statement. (near "1" at position 50) Unexpected beginning of statement. (near "`question`" at position 54) Unrecognized statement type. (near "varchar" at position 65) SQL query:  CREATE TABLE IF NOT EXISTS `Sample`.`TABLE 3` ( int(1), `question` varchar(5), `keywords` varchar(5), `answer` varchar(5)) DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;  MySQL said: Documentation  #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'int(1), `question` varchar(5), `keywords` varchar(5), `answer` varchar(5)) DEFAU' at line 1 

Если я просто добавлю двойные кавычки в файл .csv в Textedit, напишу это следующим образом:

id, questions, keywords, answer  "1","here1","here2","here3" 

затем таблица правильно импортируется в базу данных.

Почему я не могу просто записать некоторые вещи в мой файл Excel, сохранить их как .xlsx или как .csv и иметь правильную форму в TextEdit, чтобы их можно было успешно импортировать на MySQLServer?

Окно с параметрами, когда я пытаюсь импортировать таблицу в базу данных, выглядит так:

Ошибка при импорте файла .xslx / .csv в базу данных MySQL

Я уже импортировал много файлов .odt (Libre Office), как это в базу данных, но кажется, что Libre Office автоматически позаботился об этом, а Excel - нет.

0
Я подозреваю, что это связано с тем, какой тип данных ожидает ваша база данных. Атрибут "ID" описывается как целое число? Как насчет других 3? Мне кажется, что ваша база данных ожидает строки, поэтому она выдает ошибку, когда получает другие типы данных. Заметьте, я не эксперт и только подбрасываю идею в воздух, это может быть неправильно. Kevin Anthony Oppegaard Rose 6 лет назад 0
Спасибо за ваш комментарий. Вы на самом деле правы. Если я заменю 1 на here0, тогда CSV-файл будет правильно импортирован в базу данных, даже если он не содержит двойных кавычек (но они автоматически добавляются базой данных). Но я вполне уверен, что в Libre Office файлы .odt автоматически содержали двойные кавычки в TextEdit, поэтому этот файл можно было легко импортировать в базу данных, даже если он содержал числа в электронной таблице. Poete Maudit 6 лет назад 0
Также, как я вижу, по этой причине столбец `id` был сохранен как тип` int` в базе данных, когда я импортировал файл .odt, тогда как столбец `id` был сохранен как тип` varchar` в базе данных, когда я импортировал файл .odt. импортировал .csv файл, сформированный в Excel. Poete Maudit 6 лет назад 0
Но теперь по какой-то причине я начинаю понимать, что ошибка связана с тем, что я написал выше: «Ожидалось имя символа! Зарезервированное ключевое слово не может использоваться в качестве имени столбца без обратных кавычек». `Потому что я использую` id` как имя первого столбца. Если я изменю это, тогда все работает нормально. Тем не менее, у меня не было никаких проблем с тем, чтобы импортировать столько таблиц, сколько я хотел, с таким именем столбца. Поэтому я понятия не имею, что здесь на самом деле происходит ... :( Poete Maudit 6 лет назад 0

0 ответов на вопрос