Импортировать файл * .ods в MySQL без phpMyAdmin

Я пытаюсь импортировать файл * .ods, используя mysqlimport или «загрузить данные» вместо интерфейса phpMyAdmin, потому что мне нужно автоматизировать процесс. Это моя первая попытка:

mysqlimport --ignore-lines=1 -u root -p DATABASE /home/luca/Scrivania/lettura.ods 

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

С помощью phpMyAdmin я могу правильно загрузить файл. Содержимое двух электронных таблиц правильно заполняет две таблицы. Я знаю, что при импорте такого файла * .ods phpMyAdmin использует имя листа в качестве имени таблицы для импорта файла, но это не поведение mysqlimport. Mysqlimport использует имя файла, а не имя листа.

Итак, я пробовал это:

mysql -u root -p -e "load data local infile '/home/luca/Scrivania/lettura.ods' into table TABLE_NAME" DATABASE

Не возвращает ошибок, но данные в таблице полностью несовместимы.

Какие-либо предложения? Спасибо


person Luca Scalvi    schedule 09.08.2015    source источник


Ответы (1)


MySQL не умеет читать таблицы. Лучше всего использовать вашу программу для работы с электронными таблицами для экспорта CSV, а затем загрузить этот новый CSV в базу данных. Укажите в запросе загрузку через запятую и попробуйте:

LOAD LOCAL DATA INFILE '/home/luca/Scrivania/lettura.csv'
INTO TABLE TABLE_NAME
FIELDS TERMINATED BY ','
ENCLOSED BY '' ESCAPED BY '\'
LINES TERMINATED BY '\n'
STARTING BY ''

документация по загрузке файлов содержит множество возможных вариантов, если они вам нужны.

person Royall Spence    schedule 09.08.2015
comment
Я установил начало с «2», потому что мне нужно пропустить первую строку. У меня ошибка. Думаю, я неправильно понимаю, что с чего начинать? - person Luca Scalvi; 10.08.2015
comment
Эта опция сообщает MySQL, какой символ обозначает начало строки. По умолчанию он пуст, поэтому вы, вероятно, можете его опустить. - person Royall Spence; 10.08.2015