从Excel数据表导入MySQL,已经做过好几次了,但每次都会碰到各种问题:invalid utf8 character string, data too long, ...,浪费了不少时间
为了提高效率,是时候指定一个数据导入的SOP了:
1.准备.txt文件
1.1 将要导入的数据(不含表头)从工作表复制、粘贴到一个新建的Excel数据表中(避免污染源数据)
1.2 粘贴时注意:使用右键paste as value选项,过滤掉源数据表中的多余格式(如,字体颜色、粗体等)
1.3 将新建的Excel文档(只含一张数据表)另存为unicode文本(试过.csv格式,不好用)
1.4 关闭另存为后的Excel文档,在资源管理器中用记事本打开该文档,点击“另存为“按钮,发现编码格式为“Unicode”,将此项更改为“UTF-8”,覆盖源文件。
(这一步很关键,如果缺少,则在导入.txt文件时Mysql会报出让人费解的错误:invalid utf8 character string '')
2. 建表、导入.txt文件
2.1 根据Excel数据表的结构,设计Mysql表结构(感觉Text格式比varchar好用,不用关心各字段的长度问题)
2.2 创建表:Create table term (type text, subtype text, en text, cn text, chd text) character set=utf8;
2.3 使用Load Data InFile 'D:/sample.txt' Into Table terms lines terminated by '\r\n';语句导入.txt,成功!
开始享受数据库操作吧!
彩蛋:
如要将查询结果导出到.txt文件,使用语句:select * into outfile 'D:\\term.txt' from term limit 10;