Oracle实现一张表根据另一张表更新(有则更新无则插入)

本文介绍了如何在Oracle和MySQL数据库中实现有数据则更新,无数据则插入的操作。针对Oracle,使用了MERGE INTO语句,通过匹配条件更新或插入表value_dazong_index_mom_day的数据。而在MySQL中,利用ON DUPLICATE KEY UPDATE语句达到相同目的,要求插入的字段有唯一索引。

如果在Oracle 有表value_dazong_index_mom_day(在table里存起来了),它所有字段值的更新依据表DZWWW_MOM(根据原始数据建立起的视图),这里假设这两张表的结构完全一样(事实上可以不一样,只需第一个表要更新的字段能匹配第二个表的字段,且两张表唯一索引对应即可,例如根据唯一id,对两张表其他字段进行匹配更新),其结构如下:

其中表DZWWW_MOM视图是依据原始数据进行计算的指标,并将计算好的指标按照该结构存到Tab中的表value_dazong_index_mom_day,原始数据每日更新,要求存到Tab表的指标也每日更新。

显然,DZWWW_MOM视图是依据原始数据计算的指标,它查询出的数据也是每日更新的,只需让Tab表依据该视图表更新即可,代码如下:

[sql] view plain copy

  1. merge into value_dazong_index_mom_day t1    
  2.   
  3. using DZWWW_MOM t2&nbs
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值