我有一组由 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