如何将csv文件导入mysql表并自动增加

时间:2017-07-19 07:30:33

标签: mysql csv mysqlimport

我正在尝试使用以下命令将csv文件导入mysql:

mysqlimport --columns=name,amount,desc --ignore-lines=1 --fields-terminated-by=, --verbose --local -u muser -p mydb file.csv

该文件包含字段但不包含主键。它看起来像这样:

name, amount, desc

我的mysql表看起来像这样:

CREATE TABLE `organization` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(128) DEFAULT NULL,
  `amount` varchar(128) DEFAULT NULL,
  `desc` varchar(128) DEFAULT NULL,

如何使用mysqlimport导入csv文件并生成自动递增的ID?

当我运行它时,我收到以下错误:

  

mysqlimport:错误:1467,无法读取自动增量值   存储引擎,使用表时:组织

3 个答案:

答案 0 :(得分:3)

使用--columns parameter指定字段的映射。列名称的顺序表示如何将数据文件列与表列匹配。

mysqlimport --columns=name,amount,desc...

答案 1 :(得分:0)

使用前导空字段扩展您的csv:

id,name,amount,desc
,john,10,xz
,paul,20,ac

答案 2 :(得分:0)

对于那些使用 phpmyadmin UI 导入和/或您的表可能有大量列并且您不想通过冗长乏味的 sql 语句导入的用户,请执行以下操作;

  1. 使用任何电子表格编辑器(如 microsoft excel)在 ID 列所在的位置添加一个空白列。

  2. 如果您收到“Incorrect integer value: '' for column 'id' at row 1”错误,请填写您用 0 创建的空白 ID,它们将在插入时自动递增。

注意,当使用电子表格编辑器编辑 csv 文件时,只需交叉检查所有列,尤其是日期或货币列是否没有按照编辑器的默认格式进行格式化,这可能与您的原始格式不同。