oracle 批量更新merge的问题

[复制链接]
查看11 | 回复7 | 2015-1-5 06:00:06 | 显示全部楼层 |阅读模式
merge into tab1
using ()on (tab1.id=tab2.id)
when match then
do update
when no match then
do insert
如果tab2里有多条数据和tab1对应怎么更新呢 merge这样更新tab1和tab2是有条件的吧

回复

使用道具 举报

千问 | 2015-1-5 06:00:06 | 显示全部楼层
merge 不行
回复

使用道具 举报

千问 | 2015-1-5 06:00:06 | 显示全部楼层
通过关联条件,要有一对一的关系。
回复

使用道具 举报

千问 | 2015-1-5 06:00:06 | 显示全部楼层
那你得想出个法子来保证只取到一条
回复

使用道具 举报

千问 | 2015-1-5 06:00:06 | 显示全部楼层
一条可更新多条,多条不可更新一条。
可以用 DISTINCT, GROUP BY, ROW_NUMBER() 等办法解决。

回复

使用道具 举报

千问 | 2015-1-5 06:00:06 | 显示全部楼层
源如果多条的话,直接报Oracle ORA-30926 unable to get a stable set of rows in the source tables
回复

使用道具 举报

千问 | 2015-1-5 06:00:06 | 显示全部楼层
源表不能n,目的表可以n
回复

使用道具 举报

千问 | 2015-1-5 06:00:06 | 显示全部楼层
剑破冰山上将了的,用select count(*),如果on (count>1)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行