一、背景
我们产品C 在测试过程中,需要创建DB表、并且需要在DB表中构造测试数据;测试数据可以通过我们测试团队开发的测试数据构造 生成csv文件,但如何将csv 中的数据插入DB表呢 ?
通过可视化的方式手动插入? 通过INSERT 语句执行插入? 通过自动化代码实现?
在时间紧张的情况下,以上方式都太费时间了!
接下来教大家通过 HeidiSQL 将 csv表格数据导入到 DB表~
二、准备
- 数据库连接工具-HeidiSQL
- 已在 HeidiSQL 创建对应的表 (建立好表以后就可以导入数据了)
- csv 文件
三、步骤
1、直接准备一个csv文件 or 编辑excel,并生成csv文件,准备csv文件需要注意几个地方:
- 1.1 如果是必填字段,一定需要有值
- 1.2 设置单元格格式的时候不要设置为数值,不然会出现 “data truncated for column” 的错误。一般设置为常规;
- 1.3 其他数据类型的错误,都可以尝试设置一下单元格格式;
- 1.4 不要有多余的列
- 1.5 把excel的列名编辑成数据库对应的字段。顺序也保持一致
2、打开HeidiSQL,点击菜单栏 中的“工具” - > 点击 :"导入csv文件…"
3、导入csv文件的时候注意几个地方:
-
3.1 文件名:也就是文件的文件路径,再次强调:不要包含中文字符,否则会报:not found(Errcode:2)的错误
-
3.2 编码:这里设置为你自己的数据编码,如果不知道的话,可以试一下 :
- utf8: UTF-8 Unicode(我用这个导入会有乱码问题)
- gb2312:GB2312 Simplified Chinese(用这个导入无乱码问题)
-
3.3 数据从第几行开始,忽略前面的行数(如果Excel首行为列名的话,设置为:忽略前1行即可)
-
3.4 设置分隔符为逗号,而不是分号;
-
3.5 冲突行的处理,如果你是导入重复数据&要覆盖原数据的话,可以选 :REPLACE(替换重复)
-
3.6 选择csv文件有的列导入,自增Id,创建日期等不要选;
4、导入成功
四、补充
当大家遇到一些测试数据需要准备时,可以思考 使用工具来提高自己的工作效率 ,可以自己研发/寻找现成的工具/挖掘自己经常使用的应用是否有对应的功能 ?
例如:这个数据的准备 ,我先后尝试了:
在网上寻找工具 → 自己尝试写代码 → 尝试Excel (前三步花了比较长的时间,于是换了一个思路)→ 挖掘 自己日常使用的DB链接工具:HeidiSQL 是否存在导入功能
→ 发现可以导入但导入数据存在问题 → 寻找解决方案 → 成功解决问题 → 文章输出、分享
大家并不是一定要使用 HeidiSQL 来操作:csv 表格导入数据到 DB表 ,可能大家用的并不是同一个DB链接工具;
时间够的情况下,你可以挖掘一下,自己目前使用的DB链接工具,是否也有该功能:“导入数据”,并尝试 上手速度是否够快,操作步骤是否简单 ?
参考文档:
1.heidisql导入txt、csv等文件时乱码问题解决方案:https://blog.csdn.net/m0_37788308/article/details/78367491?locationNum=1&fps=1
2.Heidisql 导入 excel 数据:https://www.jianshu.com/p/8e01c109aca5