我在一个文件中有一个 100k id 的列表。我想遍历这些 id:
对于每个id
,检查是否id
在表中:
- 如果是,更新其
updated_date
标志 - 如果没有,添加一条新记录
(id, updated_date)
我研究并找到了MERGE
条款。缺点是,MERGE
要求 ids 在一个表中。我只允许在必要时创建一个临时表。
谁能指出我正确的方向?它必须是我可以在我的数据库上运行的脚本,而不是在代码中。
merge into MyTable x
using ('111', '222', all my ids) b
on (x.id = b.id)
when not matched then
insert (id, updated_date) values (b.id, sysdate)
when matched then
update set x.updated_date = sysdate;
编辑:如果这是我唯一的选择,我现在可以使用临时表。