暂无图片
Oracle 如何一次更新两张以上(40张表)的表总某个字段
我来答
分享
Error
2021-12-23
Oracle 如何一次更新两张以上(40张表)的表总某个字段

怎么样一次更新多张表的指定字段值?

我来答
添加附件
收藏
分享
问题补充
6条回答
默认
最新
Error

请问,如何同时更新多张表中的多个字断值,最快。比如:20张表中每个表都需要更新其中三个字断的值。
基本(Update Table A, Table B, Table C, Table D, Table E, Table F
Set a.Id = 1, a.Name = 1, a.Age = 1, b.Id =1, b.Name =1, b.Age =1, c.Id =1, c.Name =1, c.Age =1, d.Id =1, d.Name =1, d.Age =1, e.Id =1, e.Name =1, e.Age =1, f.Id =1,
f.Name =1, f.Age =1
Where ......

请问有更好的方法吗?如果有30-50张表该如何处理?

暂无图片 评论
暂无图片 有用 0
DarkAthena

oracle不支持你这个写法,只能一张一张表update,你可以先用sql把更新命令批量拼接出来,再去执行拼接后的命令。
如果表之间不冲突的话,可以把这批sql分几个组,手动多开几个会话同时分别更新不同的组

暂无图片 评论
暂无图片 有用 0
Error
题主
2022-01-13
谢谢,用包的方法解决了
Thomas

这种语法(Update Table A, Table B, Table C, Table D, Table E, Table F

Set a.Id = 1, a.Name = 1是没有的。不过呢,可以用触发器实现该功能。
暂无图片 评论
暂无图片 有用 0
Error
题主
2022-01-13
谢谢,用包的方法解决了
Error

谢谢

暂无图片 评论
暂无图片 有用 0
刘晓华

Oracle没这种写法,可以通过触发器实现,不过我想知道怎么会有这样的需求,是不是可以上升到业务的层面,拟请逻辑,重新设计…

暂无图片 评论
暂无图片 有用 0
Error
题主
2022-01-13
谢谢,用包的方法解决了
chengang

30条 update语句 包在一个事务中 就算是一次性的了。

begin tran
update t1

update t30
commit

暂无图片 评论
暂无图片 有用 0
Error
题主
2022-01-13
谢谢,用包的方法解决了
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏