我有一张桌子:
key, value
1, ...
2, ...
3, ...
我现在需要更换数千个密钥
oldkey, newkey
1, 4
3, 7
结果
key, value
4, ...
2, ...
7, ...
如果没有成千上万的更新查询,是否有实用的方法可以做到这一点? 如果是高性能的话呢?
答案 0 :(得分:2)
使用INNER JOIN更新它们,如:
UPDATE upd
SET upd.key = mapping_table.newkey
FROM table_to_update upd
INNER JOIN mapping_table
ON upd.key = mapping_table.oldkey
答案 1 :(得分:1)
您可能需要内部联接
SELECT b.newkey,a.value
FROM OLDKEYS a INNER JOIN NEWKEYS b
ON a.key = b.oldkey;
如果有需要,您也可以使用此逻辑进行更新