Загрузить CSV-файл, чтобы выбрать столбцы в таблице

У меня есть файл CSV, который имеет 3 столбца, и моя таблица имеет 4 столбца (один из них - автоинкремент id, который я хочу автоинкремментировать). Я хочу загрузить 3 столбца из CSV в выбранные 3 столбца в таблице.

Пробный код:

LOAD DATA LOCAL INFILE 'info.csv' INTO TABLE tbl_countryip (ipstart, ipend, countrycode) FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n'  ;

который выдает ошибку:

ОШИБКА 1064 (42000): у вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MariaDB, на предмет правильного синтаксиса, который можно использовать рядом с полями 'TERMINATED BY ',' ENCLOSED BY ' '' LINES TERMINATED BY '\r\n''в строке 1

3 ответа

Список столбцов находится в неправильном месте в вашем утверждении. Следуйте синтаксису в документации.

Вы хотите что-то вроде этого:

  LOAD DATA LOCAL INFILE 'info.csv' 
  INTO TABLE tbl_countryip 
  FIELDS TERMINATED BY ',' ENCLOSED BY '"'
  LINES TERMINATED BY '\r\n'
  (ipstart, ipend, countrycode) 

Ссылка: http://dev.mysql.com/doc/refman/5.5/en/load-data.html

Следуйте ниже шагов-

1) связаться с любым графическим интерфейсом, как sqlyog.

2) выберите БД> выберите таблицу> щелкните правой кнопкой мыши таблицу> выберите импорт> импортировать данные CSV с помощью загрузки...

3) выбрать все столбцы, кроме первичного ключа.

4) Поместите 1 в опцию ingnore line, если ваш CSV-файл содержит заголовок.

5) нажмите на импорт

Если вы хотите сделать по команде, то команда должна быть в соответствии с ниже-

LOAD DATA LOCAL INFILE 'info.csv' INTO TABLE tbl_countryip FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' (ipstart, ipend, countrycode);

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

Если ваш CSV-файл содержит строку заголовка, вы должны исключить его, как показано ниже:

LOAD DATA LOCAL INFILE 'info.csv' INTO TABLE tbl_countryip FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES (ipstart, ipend, countrycode);

Я удалил столбец id из таблицы, чтобы и таблица, и файл csv имели 3 столбца, а затем запустили команду load csv, а затем вставили столбец id в таблицу с автоинкрементом.

Другие вопросы по тегам