我有一组由 id 号索引的记录,我需要将这些记录的索引转换为新的 id 号。我有一个两列表,将旧数字映射到新数字。

例如,给定这两个表,更新语句会是什么样的?

鉴于:

   OLD_TO_NEW
oldid   |   newid
-----------------
1234        0987
7698        5645
...         ...


id      |   data
----------------
1234        'yo'
7698        'hey'
...         ...

需要:
id      |   data
----------------
0987        'yo'
5645        'hey'
...         ...

这个 oracle 所以我可以访问 PL/SQL,我只是想避免它。

最佳答案

我会在 OLD_TO_NEW.oldid 上有一个唯一索引并在内联 View 上更新:

update (select id,
               newid
          from old_to_new,
               my_table
         where my_table.id = old_to_new.oldid)
set id = newid

10-08 13:36