mysql增量数据对历史数据更新的操作

        有些事实表可能包含多个流程的数据(比如累计快照事实表),又或者流程是可以回滚的,那么不可避免要对历史数据进行修改,这边修改的方式为:

        1、设置唯一索引,这里是将订单id

        2、然后插入新的记录,使用插入更新ON DUPLICATE KEY UPDATE 当触发唯一键的时候就选择更新指定的列。这样就可以保证新的记录能够覆盖旧的数据或者填充其中的一些字段。

insert into tt(

        order_no,
        date_day,
        province_name,
        city_name
)
select

        order_no,
        date_day,
        province_name,
        city_name
from t1
ON DUPLICATE KEY UPDATE
date_day = VALUES(date_day),

province_name= VALUES(province_name),

city_name= VALUES(city_name);

        3、这样的好处是,当需要添加和修改一些字段的时候是非常灵活的,在拉宽,往主表添加维度信息时非常的好用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值