Есть ли способ импортировать CSV-файл с разделителями-запятыми в mysql? - PullRequest
1 голос
/ 11 июля 2020

Привет, я новичок в веб-разработке.

Я пытаюсь импортировать файл CSV в рабочую среду mysql с помощью «Мастера импорта табличных данных». Однако я прочитал, что мой файл должен быть в формате CSV (MS-DOS), или я получаю следующую ошибку: Не удается проанализировать файл. Пожалуйста, попробуйте изменить тип кодировки. Если это не помогает, возможно, файла нет: csv, или файл пуст.

Я не могу использовать CSV (MS-DOS), поскольку мои данные содержат много разных специальных символов в том числе из Nordi c Europe. Когда я конвертирую свой CSV (с разделителями-запятыми) в CSV (MS-DOS), специальные символы перестают быть прежними.

Есть ли способ импортировать файл CSV с разделителями-запятыми в рабочую среду mysql? Или есть лучшее решение для внесения моих данных в таблицу, например, как-то сохранить те же специальные символы в файле MS-DOS?

Ответы [ 2 ]

1 голос
/ 11 июля 2020

Вы можете без проблем импортировать обычные CSV-файлы, просто убедитесь, что кодировка совпадает.

Что-то вроде

LOAD DATA
    INFILE yourfile.csv
    INTO TABLE tablename
    FIELDS
        TERMINATED BY ','
        ENCLOSED BY '"'
    LINES
        TERMINATED BY '\n'
    IGNORE 1 LINES

должно работать. Если в вашем CSV-файле нет заголовков, удалите строку ignore 1 lines из кода. Если ваше форматирование отличается, измените соответственно закрывающие и завершающие символы.

Точный синтаксис можно найти в руководстве .

0 голосов
/ 11 июля 2020

Ваш CSV должен работать нормально. Вам просто нужно Load Data Infile

Вам, вероятно, потребуется определить эти настройки, хотя

LOAD DATA INFILE 'c:/tmp/discounts.csv' 
INTO TABLE discounts 
-- comma seperated? maybe pipes '|'?
FIELDS TERMINATED BY ',' 
-- what surrounds input and is it optional? then add OPTIONALLY before ENCLOSED
ENCLOSED BY '"'
-- what is at the end of files
LINES TERMINATED BY '\n'
-- how many header rows are there, if any?
IGNORE 1 ROWS;
...