您的位置:首页 > 数据库 > Oracle

批量更新数据Oracle

2017-02-08 14:57 323 查看
              最近做项目遇到一个问题,前台页面修改购物订单,订单包含几百条商品,前台修改商品的数量,列表信息提交给后台。
      订单表Order(OrderNo,GoodsCode,GoodsName,Unit,Remark,Quantity,.........);
      前台修改Quantity的值,返回List<OrderVo>,OrderVo对象包含三个属性OrderNo,GoodsCode,Quantity,存新的Quantity值。
      传统的方法,根据商品编号一条一条update的Order表中的Quantity值,update几百次,显然效率很低。
      现在考虑建一张临时表OrderTemp(OrderNo,GoodsCode,Quantity),批量插入List<OrderVo>的对象内容
INSERT INTO OrderTemp
(OrderNo,GoodsCode,Quantity)

(SELECT #{item.orderNo,jdbcType=VARCHAR},#{item.GoodsCode,jdbcType=VARCHAR},#{item.Quantity,jdbcType=REAL} FROM DUAL)
      然后用临时表给订单表赋值
update Order d
SET d.Quantity =(select t.Quantity from OrderTemp t where t.OrderNo = d.OrderNo )
where exists(select 1 from OrderTemp t	where t.OrderNo = d.OrderNo )

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: