MySQL загрузить данные локального файла - PullRequest
2 голосов
/ 14 декабря 2010

Я пытаюсь загрузить данные в таблицу mysql, используя LOAD DATA LOCAL INFILE, используя приведенный ниже код.

Mysql:

LOAD DATA INFILE '/var/www/vhosts/domain.com/httpdocs/test1.csv' INTO TABLE temp_table FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES (recloc,client_acc)

Редактировать: изменен LOAD DATA LOCAL INFILE на LOADAINFILE ДАННЫХ, удалено SET id = null, добавлено IGNORE 1 LINES

Я не получаю ошибок и нет импортированных записей.Я считаю, что проблема связана с именами столбцов, но мне трудно понять, какими должны быть эти имена.Должны ли они быть фактическими именами столбцов в CSV?или имена полей в таблице БД?Я также хотел бы иметь первичный ключ auto_incremented (id).

CSV:

recloc,client_acc
"NLGSX3","CORPORATE"
"7SC3BA","QUALITY ASSURANCE"
"3B9OHF","90717-6710"

Любые предложения о том, что я могу делать неправильно?спасибо!

Ответы [ 2 ]

2 голосов
/ 14 декабря 2010

Имена столбцов в CSV не обязательны, поэтому вы должны добавить предложение IGNORE 1 LINES.

Столбцы в вашем запросе (recloc,client_acc) должны соответствовать столбцам в таблице. Первый столбец из CSV будет вставлен в recloc, второй в client_acc.

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

0 голосов
/ 23 мая 2013

Краткое и приятное решение для импорта данных из Excel в MySQL:

Работает хорошо для форматов файлов TXT. В ДЕТАЛЯХ:

tbl name=t1
feilds are= name varchar,email varchar;

text.txt file << == имена столбцов таблицы первых строк этого текстового файла: </p>

name,   email
"n1",   "e1"  next line 
"n2",   "e2" next line 
"n3",   "e3" next line 
"n4",   "e4" next line 
"n5",   "e5" next line 
"n6",   "e6" next line 
"n7",   "e7" next line 

пожалуйста, игнорируйте операторы следующей строки SQL-запрос в wamp

LOAD DATA INFILE 'c:/wamp/www/touch/text.txt' INTO TABLE t1 FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES(name,email)

Для успешной работы нашего комманда мы создали отдельные папки.

Настоящий -

C: \ wamp \ mysql \ data \ wamp \ www \ touch \ text.txt << == путь к физическому файлу. </p>

Но мы упоминаем c: /wamp/touch/text.txt

...