多表事务问题

Dennis0529 2012-03-20 05:20:17
a(aid,a1,a2...)
b(bid,aid,b1,b2...)
c(cid,aid,bid,c1,c2...)

要求在一个事务中完成三张表的数据新增!

各位大人给个思路吧,谢谢
...全文
64 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dennis0529 2012-03-22
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 huan_lxyd 的回复:]
同一个事务中未提交的数据是可以查询到的啊。。
[/Quote]

采用 returing into 可以获取到的,呵呵

用存储过程解决问题了
smartzhai123 2012-03-21
  • 打赏
  • 举报
回复
a表的aid是序列产生的吧,可以用 序列.currval表示就行啊
bayueguihuaxiang 2012-03-21
  • 打赏
  • 举报
回复
好像不行吧
除非把数据库设置为未提交读
Dennis0529 2012-03-21
  • 打赏
  • 举报
回复
呵呵,谢谢大家啊,可能我没有描述清楚
说明如下:

a(aid,a1,a2...)
b(bid,aid,b1,b2...)
c(cid,aid,bid,c1,c2...)

insert b 时 aid是a表中最新插入的数据,c表一样,由于事务没有commit,不知道如何获取最新insert 的a表的aid或者b表的bid

不知道这样描述清楚没 ?
huan_lxyd 2012-03-21
  • 打赏
  • 举报
回复
在编程语言中将事务设置为手动提交,执行完成3个insert后再提交。
我心飞翔 2012-03-21
  • 打赏
  • 举报
回复
如果直接操作数据库,写PL/SQL 存储过程,最后commit,就是在一个事务中。
如果是在编程语言中处理,编程语言中有特定的开始和结束事务的类方法。
huan_lxyd 2012-03-21
  • 打赏
  • 举报
回复
同一个事务中未提交的数据是可以查询到的啊。。
lxyzxq2008 2012-03-20
  • 打赏
  • 举报
回复
[Quote=引用楼主 dennis0529 的回复:]
a(aid,a1,a2...)
b(bid,aid,b1,b2...)
c(cid,aid,bid,c1,c2...)

要求在一个事务中完成三张表的数据新增!

各位大人给个思路吧,谢谢
[/Quote]
您的问题是啥啊?
没人说一个事务只能更新一张表啊
youqi1984 2012-03-20
  • 打赏
  • 举报
回复
存储过程。
三条insert .本身事务处理
jdsnhan 2012-03-20
  • 打赏
  • 举报
回复
一个事务?写三个insert,然后一起commit就行了
iqlife 2012-03-20
  • 打赏
  • 举报
回复
????

commit
rollback
不能满足?

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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