条件插入

zheninchangjiang 2007-06-19 01:16:15
merge into bd_userrole a
using (select '10' as roleid,'0105' as userid from dual) b
on ( a.burbrid =b.roleid and a.burempid=b.userid )
when not matched then insert (a.burbrid,a.burempid) values (b.roleid,b.userid)
when matched then
--do nothing
想要达到这种目标怎么办才好

执行的时候老是出 "A"."BURBRID":无效的标识符,怎么看都不明白为什么


...全文
266 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zeng_yh 2007-06-21
  • 打赏
  • 举报
回复
top
koo7758258 2007-06-20
  • 打赏
  • 举报
回复
学习中!
zheninchangjiang 2007-06-19
  • 打赏
  • 举报
回复
问题全搞明白了,
一不用merge
而是用这么一个怪怪的东西
insert into bd_userrole(burbrid,burempid)
select '10','0105' from dual
where not exists(select 1 from bd_userrole where burbrid='10' and burempid='0105')
二是因为merge的限制,不允许在on 的条件例 中进行update
hongqi162 2007-06-19
  • 打赏
  • 举报
回复
要么把你的表结构和测试数据和输出结果发出来
hongqi162 2007-06-19
  • 打赏
  • 举报
回复
create table t1(cid int,cname varchar2(100));
insert into t1 values (1,'1');
create table t2(cid int,cname varchar2(100));
--执行语句
MERGE INTO t1 a
USING (select '1' cid,'3' cname from dual) b
on (a.cid=b.cid)
WHEN MATCHED THEN
UPDATE SET a.cname=b.cname
WHEN NOT MATCHED THEN
INSERT (a.cid,a.cname ) VALUES ( b.cid,b.cname );
--执行结果
select * from t1

1 3
zheninchangjiang 2007-06-19
  • 打赏
  • 举报
回复
on ( a.burbrid =b.roleid and a.burempid=b.userid )

提示出错的底方
zheninchangjiang 2007-06-19
  • 打赏
  • 举报
回复
补充如下:
select * from bd_role(role);
--results:
brid brname
10 管理员

----
select * from bd_userrole(role & users)
--results:
burbrid(role id) burempid(userid)
--no results

zheninchangjiang 2007-06-19
  • 打赏
  • 举报
回复
??????????
hongqi162 2007-06-19
  • 打赏
  • 举报
回复
create table t1(cid int,cname varchar2(100));
insert into t1 values (1,'1');
create table t2(cid int,cname varchar2(100));
insert into t2 values(1,'3');
insert into t2 values(2,'4');
--执行语句
MERGE INTO t1 a
USING t2 b
on (a.cid=b.cid)
WHEN MATCHED THEN
UPDATE SET a.cname=b.cname
WHEN NOT MATCHED THEN
INSERT (a.cid,a.cname ) VALUES ( b.cid,b.cname );
--执行结果
select * from t1

13
24

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧