Mysql Workbench导入cvs数据

哎哟喂,跟你讲讲我当年导入CSV数据那点儿事儿。
那年头,我刚接手公司新买的MySQLWorkbench,版本是5 .7 ,忘不了。

首先,你得打开Workbench,连接上数据库。
双击那个连接,弹出来窗口让你填密码啥的。
我那时候连着公司服务器,IP是1 9 2 .1 6 8 .1 .1 00,每次都得慢悠悠等。

然后呢,选目标表。
左边那面板,点Schemas,找到我们那个库,比如叫company,再展开Tables,看到有个表叫orders。
我手一抖,点错了次,把orders backups给导入去了,差点儿急死。

点那个表,右键,选TableDataImportWizard。
我看着这名字,心想这肯定是个啥好东西。
结果点进去,一堆选项,看得我眼花。
有个版本,好像是8 .0的,直接有个绿色的加号按钮,点就完事了,简单。

要是你这边没这个Wizard,咋办?像我之前碰到的,版本老一点。
你就右键表,选SelectRows-Limit1 000,出来个窗口,让你看表里现有数据。
我看这也不行,又去网上搜,有人讲说在数据窗口找Export/Import按钮,是个小表格的样子,点它,再选文件导入。

选CSV文件。
我那时候有个订单数据,存E盘根目录,文件名叫orders_2 02 3 .csv,点开一看,哇塞,几千行,头几行是列名。
Workbench自动把逗号当分隔符,还挺好。

确认导入。
预览的时候,我特意检查了,金额那列,有个空值,心想行吧,导入完再看。
点了Apply,Workbench弹出来问,是执行还是啥的,我点了执行。
等了好久,弹个框说“导入成功”。
我心里还嘀咕,真的成功?
验证导入结果。
我赶紧刷新了一下表,或者直接打SQL语句,SELECT FROM orders LIMIT 5 ,跑出来一看,空的!我蒙了,回去查日志,发现是那个空值惹的祸,得加个默认值。
后来我学聪明了,导入前先清空表,或者用INSERT INTO ... SELECT FROM ... 代替,保险。

注意事项嘛,我都踩过坑了。
文件格式,列顺序得一样,我头回搞错,日期列和数字列搞反了,全乱了。
字符编码,我导过一次中文订单号,选了UTF-8 ,不然乱码一锅粥。
权限,有个新人连不上,问我为啥,我说你得有写权限,不然导入个啥。

不同版本,界面是变,但核心思想不变,连接→表→文件→执行。
有个版本我试过用LOAD DATA INFILE,把CSV直接转成SQL语句,也行,不过得会写SQL。

总之,这事儿吧,多试几次就有经验了。
你试试看,有问题再来问我,我帮你捋捋。

navicat导入CSV文件数据到mysql数据库中

跟你说个事儿,前年我在上海帮一个哥们儿弄这个,真是折腾死人。

他有个CSV文件,数据得导入MySQL。
一开始我也懵,后来一步步来,总算搞定了。

首先,得打开Navicat,连上MySQL那台服务器。
双击他那个数据库名,进去。

然后,点顶部菜单,找“工具”,再找“导入向导”。
弹出来一个窗口,你点选“CSV文件”,下一步。

下一步,就找那个CSV文件。
点“浏览”,找到文件,点下一步。

关键来了,分隔符。
你看你那个CSV文件是用逗号隔开的还是用制表符?点那个“逗号”或者“制表符”,再看看“首行是否包含列名”,一般都勾上。
编码,得跟你文件一样,要是UTF-8 就选UTF-8 ,不然导入进去乱码了,那可就麻烦了。

然后,下一步,选项页面。
一般默认就行,别乱改。
下一步。

这一步最头疼,得选目标表。
要是表不存在,还得点“新建表”。
然后,把CSV的列跟数据库表的字段对上。
比如CSV这一列是字符串,数据库这一列也得是字符串,要是搞错了,导入进去会出错。
这一步得特别仔细。

然后,选择导入模式。
你想是追加数据,还是更新数据?有的话是更新,没有就插入。
这个得看你的需求。

最后,点“开始”。
Navicat就开始导入了,会有一条进度条。
完了之后会告诉你成功,还有导入了多少行,有没有错误。

哦对了,我跟你讲个坑。
有一次我忘了检查编码,导入进去全是一堆乱码,气死我了。
后来还得重新导。
所以,编码一定要一致。

还有,要是文件特别大,比如几万行那种,直接导入可能会卡死Navicat。
你可以分批导入,或者调整MySQL的参数,比如max_allowed_packet,不然真的要抓狂。

总之,这事儿吧,不难,但细节多,一不小心就错。
我跟你讲这些,就是让你少走弯路。