Подтвердить что ты не робот

Как вставить выбранные столбцы из файла CSV в базу данных MySQL с помощью LOAD DATA INFILE

У меня есть файл CSV, который содержит 10 столбцов. Я хочу выбрать только некоторые столбцы из этого файла и загрузить их в базу данных MySQL с помощью команды LOAD DATA INFILE.

4b9b3361

Ответ 1

Загрузите данные в таблицу в MySQL и укажите столбцы:

LOAD DATA LOCAL INFILE 'file.csv' INTO TABLE t1 
FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'  
(@col1,@col2,@col3,@col4) set [email protected],[email protected] ;

@col1,2,3,4 - это переменные для хранения столбцов csv file (предположим 4), id - столбцы таблицы.

Ответ 2

LOAD DATA INFILE 'file.csv'
  INTO TABLE t1
  (column1, @dummy, column2, @dummy, column3, ...)
FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '"'
LINES TERMINATED BY '\r\n';

Просто замените column1, column2 и т.д. именами столбцов и поместите @dummy, где есть столбец в CSV, который вы хотите игнорировать.

Подробнее здесь.

Ответ 3

Укажите имя столбцов в CSV в инструкции infile load data.

Код выглядит следующим образом:

LOAD DATA INFILE '/path/filename.csv'
INTO TABLE table_name
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
(column_name3, column_name5);

Здесь вы можете добавить данные только к двум столбцам (вы можете выбрать их с именем столбца) в таблицу.

Единственное, что вам нужно позаботиться, это то, что у вас есть файл CSV (filename.csv) с двумя значениями в строке (строке). В противном случае, пожалуйста, укажите. У меня другое решение.

Спасибо.

Ответ 4

Пример:

содержимое файла ae.csv:

"Date, xpto 14"
"code","number","year","C"
"blab","15885","2016","Y"
"aeea","15883","1982","E"
"xpto","15884","1986","B"
"jrgg","15885","1400","A"

CREATE TABLE Tabletmp (  
    rec VARCHAR(9) 
);

Для столбца только 3:

LOAD DATA INFILE '/local/ae.csv' 
INTO TABLE Tabletmp
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 2 LINES
(@col1, @col2, @col3, @col4, @col5)
set rec = @col3;


select * from Tabletmp;
    2016
    1982
    1986
    1400