我想用新的主键值更新旧表的主键。
旧表
catalogId|columnB
000987|abc
000765|xyz
新表
catalogId|columnB
100001|qwe
100002|uop
注意: 我想要实现的是我想用新值更新旧表,即000987必须由100001和000765替换为100002,依此类推。有很多记录。
如何编写通用查询来进行更新?
答案 0 :(得分:0)
首先,您需要将数据库中的映射表导入为表,或将其用作外部表。
假设此导入的映射表结构为
mapping_table
old_catalogID | new_catalogID | old_columnB | new_columnB
然后您的更新查询将类似于:
update ot.old_table ot
set ot.catalogId = (select mt.new_catalogID from mapping_table mt
where mt.old_catalogID = ot.catalogId),
ot.columnB = (select mt.new_columnB from mapping_table mt
where mt.old_columnB = ot.columnB);