如何将 csv 文件导入 mysql table 并自动递增
How to import a csv file into a mysql table and auto increment
我正在尝试使用以下命令将 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 table 看起来像这样:
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: Error: 1467, Failed to read auto-increment value from
storage engine, when using table: organization
使用--columns parameter指定字段的映射。列名的顺序表示如何将数据文件列与 table 列匹配。
mysqlimport --columns=name,amount,desc...
使用前导空白字段扩展您的 csv:
id,name,amount,desc
,john,10,xz
,paul,20,ac
对于那些使用 phpmyadmin UI 导入 and/or 的用户,您的 table 可能有非常多的列,您不想通过冗长乏味的 sql 语句执行以下操作;
使用任何电子表格编辑器(如 Microsoft excel)在 ID 列所在的位置添加一个空白列。
如果您收到“不正确的整数值:'' for column 'id' at row 1”错误,请填写您用 0 创建的空白 ID,它们将在插入时自动递增.
注意当使用电子表格编辑器编辑 csv 文件时,只需交叉检查所有列(尤其是日期或货币列)的格式是否为编辑器的默认格式,这可能与您的原始格式不同。
我正在尝试使用以下命令将 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 table 看起来像这样:
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: Error: 1467, Failed to read auto-increment value from storage engine, when using table: organization
使用--columns parameter指定字段的映射。列名的顺序表示如何将数据文件列与 table 列匹配。
mysqlimport --columns=name,amount,desc...
使用前导空白字段扩展您的 csv:
id,name,amount,desc
,john,10,xz
,paul,20,ac
对于那些使用 phpmyadmin UI 导入 and/or 的用户,您的 table 可能有非常多的列,您不想通过冗长乏味的 sql 语句执行以下操作;
使用任何电子表格编辑器(如 Microsoft excel)在 ID 列所在的位置添加一个空白列。
如果您收到“不正确的整数值:'' for column 'id' at row 1”错误,请填写您用 0 创建的空白 ID,它们将在插入时自动递增.
注意当使用电子表格编辑器编辑 csv 文件时,只需交叉检查所有列(尤其是日期或货币列)的格式是否为编辑器的默认格式,这可能与您的原始格式不同。