Navicate导入csv文件流程和注意事项

615 阅读3分钟

起因是今天同事拿了一个1G的csv文件让我帮忙导入数据库中,本着乐于助人的原则,我同意了。本以为特简单,不就是图形化操作吗哎呀,分分钟给它搞定,然而,草率了。。。

遇到的问题

  • 开始导入。先打开看看结构,第一步就遇到问题了,1个g太大了记事本打不开?网上查了下让我找到了一个好用的编辑器EmEditor(结尾附解压版下载链接和注册码)
  • 第一次导入。全部报错,输出一系列乱码,编码问题这个简单,更换编码继续
  • 第二次导入。一半报错一半不报错???这t喵的什么鬼,查看日志网上查资料一通乱找,额,没一个能看的。通过我的穷举试错法,不报错了,原来还是编码不对,所以在导入的时候编码一定要选对!!
  • 第三次导入。没想到还有第三次吧,哈哈,我也没想到。花一个小时导完数据,其他的没问题,就几个日期字段,全变成了1920-01-01,如果值为空就会变成0001-01-01。这是什么东西?

解决步骤和注意事项

经过几个小时的摸索,上述问题全都一一解决,由于网上没有相关的文档,特此做一个记录,方便以后遇到问题回看,也希望能给遇到同样问题的小伙伴提供一些帮助。

第一步

首先选择那张你需要导入的表,没有也可以自动创建,右键->导入向导,选择csv文件

image.png

第二步

选择你需要导入的csv文件,确定好你文件的编码,这是你成功导入的必要条件。实在不得已就用穷举法,一般常用的就是utf-8,gbk,gb2312等等 image.png

第三步

windows系统这一块一般都不用动,默认就好,linux和mac的话,就要选择对应的分割符 image.png

第四步

这一块比较重要,特别是你的文件中有日期字段的,没设置好就是白导。

  • 日期排序默认是DMY但一般我们应该选择YMD,代表年月日
  • 日期分割符就是你文件中日期格式是什么分割符就填什么,一般有/ -等等
  • 时间分隔符就是日期包含时分秒的分隔符,一般就是: image.png

第五步

选择目标表,我这是已经存在的表,你也可以勾选新建表,然后在目标表中填你新建的表名称 image.png

第六步

接下来就是设置源表和目标表之间字段的对应关系,一般来说不动就行,但如果你只想导入其中某些字段就需要进行相应的修改 image.png

第七步

下一步,选择一个模式,根据自己的需求来 image.png 这里有个建议的设置,点击高级,勾选使用null取代空白字符串,这就是解决我的日期文件里为空字符串,但是导入却变成了0001-01-01

image.png

最后一步

一切都设置好了,就开始你的导入吧,如果最后是这样的,恭喜你全部导入成功! image.png

总结

下面做一个总结,首先注意文件的编码,然后有日期字段注意日期格式,最后建议勾选使用null取代空白字符串

其实解决问题并不复杂,只是需要动手去做,去思考,不怕试错,学会总结。愿我们终将成为我们想成为的人。

附csv编辑器下载路径:链接:pan.baidu.com/s/1w9HN1D8E… 提取码:b9b9