我正在尝试使用以下命令将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,无法读取自动增量值 存储引擎,使用表时:组织
答案 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 语句导入的用户,请执行以下操作;
使用任何电子表格编辑器(如 microsoft excel)在 ID 列所在的位置添加一个空白列。
如果您收到“Incorrect integer value: '' for column 'id' at row 1”错误,请填写您用 0 创建的空白 ID,它们将在插入时自动递增。
注意,当使用电子表格编辑器编辑 csv 文件时,只需交叉检查所有列,尤其是日期或货币列是否没有按照编辑器的默认格式进行格式化,这可能与您的原始格式不同。