mysql如何同步两个数据表的数据

假设,现在有2个数据表一个是**users**表,另一个是积分表**currencies**

结构如下

1. users

id主键
name用户名

.

.

.

.

.

2. currencies

user_id所属用户,对应 users的id
expensive总消耗
sum积分总数

现在的业务是在users种插入记录的时候,需要在currencies表中同时插入一条积分记录,

使用事务能很好的同步这个问题,我们不作具体业务讨论

只是处理在某种很微妙的情况下导致了users插入了记录,但是currencies表却没有成功写入的情况

eg: 

INSERT INTO currencies(`owner_id`, `expensive`, `sum`) // 很简单的mysql insert语法

SELECT // select的内容可以是目标表的 column,或者自定义的值,如果是需要目标表的column的话要确保这个字段在目标表中要存在

    `id` // users表的主键

    0, //  总消耗, 根据要被写入的数据表的字段来定义类型: 可以是:char,int 等等

    5 // 总收入

FROM

    `users` // select的columns来自哪个数据表

WHERE NOT EXISTS // 查找currencies不存在,但是在users中存在的记录

    (

    SELECT

        *

    FROM

        `currencies` // 要被写入的表

    WHERE

        `currencies`.`owner_id` = `users`.`id` 

)

以防万一的操作,祝你永远用不上

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值