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

frebpwbc  于 2022-12-06  发布在  Mysql
关注(0)|答案(4)|浏览(270)

我尝试用下面的命令将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,使用表时无法从存储引擎读取自动增量值:组织机构

e3bfsja2

e3bfsja21#

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

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

68de4m5k2#

使用前导空字段展开csv:

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

omtl5h9j3#

对于那些使用phpmyadmin UI来导入和/或您的表可能有大量的列,并且您不想通过冗长乏味的sql语句导入的用户,请执行以下操作;
1.使用任何电子表格编辑器(如microsoft excel)在ID列所在的位置添加一个空白列。
1.如果出现“不正确的整数值:'' for column 'id' at row 1”错误,请填写您使用0创建的空白id,它们将在插入时自动递增。
注意:当用电子表格编辑器编辑csv文件时,只需交叉检查所有列(尤其是日期或货币列)是否没有格式化为编辑器的默认格式,这可能与您的原始格式不同。

dphi5xsq

dphi5xsq4#

解决此问题的最佳方法是,在将CSV文件导入MYSQL时,勾选复选框(在导入时发现重复键时更新数据(添加重复键更新))如屏幕截图MYSQL import data page screenshot所示

相关问题