ubuntu mysql workbench导入csv文件总结
首先导入sql文件:https://blog.csdn.net/u010801439/article/details/78762387
然后准备导入csv文件,一共有两种方法,采用第一种可以选择csv文件中的某些列进行录入,但是问题较多,采用第二种需要csv文件的数据与待录入的表中的字段数、数据类型一致。
第一种导入方法的流程:
将鼠标移动到Tables,右击,选择Table Data Import Wizard
出现以下界面
根据下图提示,选择好后,继续点next
导入完成后继续点next,最后点finish即可完成导入
第一种方式遇到的问题:
Can’t analyze the file, please try to change encoding type
第一种解决方案:
用Excel打开csv文件,点击文件-另存为
但是还是报错,可能是因为该utf-8是有bom的,用下一个方法去掉bom。
第二种解决方案:
下载一个NotePad++,用它打开文件,点击编码,将文件从原本的utf-8-BOM转换为utf-8,但我这里还是不行,可能是数据中有中文。
第三种解决方案:
(1)圈中汉字后选择工具栏中的工具–文本转换成数字(这个不知道怎么操作的)。
(2)workbench 识别csv第一行作为column名,column名不能为中文,把csv第一行改为英文列名,另外文件名、路径都不能有中文。
(3)https://blog.csdn.net/liyongqi_/article/details/51169157
第四种解决方案:
http://www.360doc.com/content/16/0407/13/21535613_548567293.shtml
到这里,所有找到的方法都试过了,我这里还是报错,只好采用第二种导入方法。
第二种导入方法流程:
https://blog.csdn.net/zhaomengszu/article/details/103784088
第二种方法可能遇到的问题:
Incorrect integer value: '' for column 'id' at row 1
这是因为数据类型不符合表的设置
解决方案:
如果是windows,在my.ini中查找sql-mode
默认为sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION",
将其修改为sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION",重启mysql后即可
如果是ubuntu,https://www.jianshu.com/p/7e722e22e276 和https://jingyan.baidu.com/article/ae97a64621a125bbfd461d98.html
我用的是第一个的方法,直接把模式设置成ANSI模式,即最宽松的模式
到此,成功录入csv文件