MYSQL之事务

什么是事务

提到事务,最经典的例子就是银行转钱:

  • 假设我们要从A的银行卡上转5000元钱给B,对于转钱这个动作,我们需要在A的账户减5000,给B账户增加5000元,是不是正常的逻辑流程是这样的,我们是不是要先从A账户把这个钱减了,然后是不是才能在B账户上增加,是不是这个意思;

  • 那我们假设这样一种情况,A这个人给B这个人转钱,A的账户减钱了,这个时候突然断电了,B这时还没加上这笔钱,断电了内存里还有这笔钱吗?是不是就没有了,那这笔钱就不翼而飞了,是不是会出现这种情况?

  • 那怎样来解决上述这种情况呢?

    • 当A的钱减去了,我们把A这减钱,B这加钱这两个动作我们让它是一个整体,如果这个整体没有完成,那全部都回到原始状态,如果B这也收到钱了,这两个操作全完成了,我们才认为它成功了;
  • 那也就是说,我们刚才这个过程,就是两个操作,当这两个操作同时完成的时候,我们才认为它完成,如果这两个操作有一个完成,另一个没完成,那我们就认为它执行错误,当执行错误,就会回滚到原点(回滚就是回到原来的状态),这个过程就叫事务;

posted on 2018-06-25 16:24  朱元禄  阅读(194)  评论(0编辑  收藏  举报