几个CSV大文件如何导入mysql数据库,并更新替换对应数据?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了几个CSV大文件如何导入mysql数据库,并更新替换对应数据?相关的知识,希望对你有一定的参考价值。
使用了navicat 导入非常慢,而且每次导入的数据容量有限,无法一次将单个csv内的所有文件导入。
数据太大,用数据库客户端软件直接导入非常卡,还是直接执行SQL吧。1、指定文件路径。
2、字段之间以逗号分隔,数据行之间以\\r\\n分隔(我这里文件是以\\n分隔的)。
3、字符串以半角双引号包围,字符串本身的双引号用两个双引号表示。
Sql代码
复制代码 代码如下:
load data infile \'D:\\\\top-1m.csv\'
into table `site`
fields terminated by \',\' optionally enclosed by \'"\' escaped by \'"\'
lines terminated by \'\\n\';
顺带也备份个导出吧。
Sql代码
复制代码 代码如下:
select * from `site`
into outfile \'D:\\\\top-1m.csv\'
fields terminated by \',\' optionally enclosed by \'"\' escaped by \'"\'
lines terminated by \'\\n\'; 参考技术A 建议你将csv导入到一个新的数据库中,然后用程序重新整理数据 参考技术B 无需CSV 大文件分割,直接用昊米配置相应的数据库所属服务器配置,单个大文件上传即可。本回答被提问者采纳 参考技术C 搞定了吗?
如何将 csv 文件导入 mysql 表并自动递增
【中文标题】如何将 csv 文件导入 mysql 表并自动递增【英文标题】:How to import a csv file into a mysql table and auto increment 【发布时间】:2017-12-24 07:45:07 【问题描述】:我正在尝试使用以下命令将 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,无法读取自增值 存储引擎,使用表时:组织
【问题讨论】:
【参考方案1】:对于那些使用 phpmyadmin UI 导入和/或您的表可能有大量列并且您不想通过冗长乏味的 sql 语句导入的用户,请执行以下操作;
使用任何电子表格编辑器(如 microsoft excel)在 ID 列所在的位置添加一个空白列。
如果您收到“Incorrect integer value: '' for column 'id' at row 1”错误,请使用 0 填写您创建的空白 id,它们将在插入时自动递增。
注意当使用电子表格编辑器编辑 csv 文件时,只需交叉检查所有列,尤其是日期或货币列是否未按照编辑器的默认格式设置,这可能与您的原始格式不同。
【讨论】:
感谢您让我免于编写脚本!不敢相信我还不知道这个! :P【参考方案2】:使用前导空字段扩展您的 csv:
id,name,amount,desc
,john,10,xz
,paul,20,ac
【讨论】:
可以,但我有数百万行,无法修改 csv。 但这不是您提供的信息,也没有理由对给定问题的适当解决方案投反对票。对于其他人来说,这可能是一个有用的快速解决方案......仅投票不符合您的个人(并且未传达)需求是不公平的。 您可以在 microsoft excel 上通过单击几下编辑 csv 您可以为所有条目添加一个空白列【参考方案3】:使用--columns parameter 指定字段的映射。列名的顺序表示如何将数据文件列与表列匹配。
mysqlimport --columns=name,amount,desc...
【讨论】:
以上是关于几个CSV大文件如何导入mysql数据库,并更新替换对应数据?的主要内容,如果未能解决你的问题,请参考以下文章
在 ORacle 10g 中导入 MySql 生成的 csv 大文件