我想根据匹配键更新数据库中2个表的记录

w46czmvw  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(316)

我有两个表,源和目标如下,

来源

Key | Source_ID | Target_ID | Source_Data
-----------------------------------------
1     s1          null        some_source_data
2     s2          null        some_source_data

目标

Key | Source_ID | Target_ID | Target_Data
-------------------------------------------
1     null        t1          some_target_data
2     null        t2          some_target_data

最初源表已有记录,现在我的要求是根据关键字匹配,更新目标表的target\u id和源表的source\u id的记录,现在我在java上做,通过使用键列将这两个表连接起来,并将结果保存在结果集中,然后对这两个表逐个执行更新查询,在数据量较少的情况下工作得很好,但在数据量较大的情况下,java执行要花费大量的时间,每个表上的200000条记录需要2个小时才能完成操作,现在我想让它脱离java,只在sql中执行,就像触发器或pl/sql一样,在目标表中插入记录时,这些触发器或脚本应该自动运行,并执行java所做的工作,需要您的帮助/建议如何实现这一点,使用db2数据库吗

ubof19bj

ubof19bj1#

这听起来很简单 join :

select s.key, s.source_id, t.target_id, s.source_data, t.target_data
from source s join
     target t
     on s.key = t.key;

如果您想按需提供此功能,可以将此逻辑 Package 到视图中。为了提高性能,可以在 key 每个表中的列。您也可以创建一个物化视图,但索引似乎有些过分。

相关问题