有时候,我们在上线某些特性时,可能需要提前初始化数据,才能使功能正常运作。
初始化数据,常用的有以下两种途径:
这两种途径都有优缺点:
第1种途径,使用方便,可重复导入不同的数据,但是开发成本高;
第2种途径,开发人员维护SQL语句,成本低,但只能针对一批次的数据,第二次面对不同的数据无法复用,且SQL语句不经过测试人员验证,容易发生问题;
最近,我们在遇到这个问题时,有位小伙伴提出:我们可以用Excel制作SQL脚本啊。
假设,我们需要初始化“员工所拥有的角色”的数据,这数据主要有两列,分别是“员工号”和“角色编码”。
那么,我们可以制作下图这样的Excel表格:
“员工号”、“角色”两列为业务数据,分别表示“员工号”和“角色编码”;
“SUB_SQL_1”、“SUB_SQL_2”、“SUB_SQL_3”分别是用于拼接的子SQL;
“SQL”是结果列,它用CONCAT函数拼接前面几列的值形成最终的SQL。
比如,第2行的CONCAT函数表达式为:=CONCAT(C2,E2,A2,E2,D2,E2,B2,E2,F2)
。
提测的时候,我们将制作好的Excel文件提测,测试人员验证是否能通过此文件生成符合预期的数据。
生产环境初始化数据时,我们使用这个经过测试的Excel文件初始化数据。