前置知识回顾
- MySQL表upset语句
- Excel输入组件的使用
一、需求说明
-
需求说明: 利用Excel输入组件读取现存的Excel文档中内容,将其更新到MySQL数据库中的某张表中。
-
插入更新组件说明:
插入更新
就是插入更新就是把数据库已经存在的记录与数据流里面的记录进行比对,如果不同就进行更新。如果记录不存在,则会插入数据!
-
MySQL数据库中用于测试的表的结构及数据如下所示,根据实际情况读者需要将其在你们自己的数据库中执行一下,
注意:如表已经存在则不需要再次创建
DROP TABLE IF EXISTS `t_test_user`; CREATE TABLE `t_test_user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `name` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '姓名', `age` tinyint(4) NOT NULL COMMENT '年龄', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-
Excel文档,其内容如下,仅仅作为参考,大家可以自定修改:
-
期望的结果: 将上述id与表中id一样的记录中的name和age进行更新,如没有记录的话,将数据插入表中!
二、设计转换
三、转换配置
- Step1:Excel输入组件配置
- 双击组件,写上步骤名称
选择字段
,获取字段,选择字段类型,如下配置:
- 双击组件,写上步骤名称
- Step2:更新组件配置
-
双击打开,设置步骤名称
-
数据库连接,点击新建,然后填写对应的数据库信息,如下
-
选择
目标表
,点击浏览
按钮,在弹窗中,选择t_test_user表,如下图所示:
-
进行条件的字段选择和更新字段选择等,具体如下:
上述配置好后,点击确定即可! -
保存转换
-
四、运行转换
五、结果分析
-
查看执行结果日志
-
Preview data中查看结果如下:
-
在MySQL中中查看表结果如下:
注意: 更新了前三条,剩余记录都是新增的!
- 执行过程:
E:读取Excel文档中数据,存入Excel输入组件行集中缓存
L:将行集中缓存的数据通过Hop传递给更新输出组件update和insert到数据库表中