天天看点

Oracle 语句常见错误

<code>merge into</code> 的内部处理是将table_source 的每一条记录和table_target的每一条记录对比匹配,匹配到符合条件的 记录就会进行修改,匹配不到的话就会insert。如果table_source的匹配列中有重复值的话,等到第二次重复的列值匹配的时候,就会将第一次的update后的值再一次update,就是说合并后的table_target中会丢失在table_source中的记录!!!如果记录丢失的话,两表合并的意义何在?!!因此我们使用merge into要注意:源表匹配列中不能有重复值,否则无法匹配(报错)。