事务

什么是事务?

事务就是一个操作或一系列操作,他们要么全部执行,要么全部都不执行。

想象你用支付宝转账100万给你朋友,这里包含两个操作:

  1. 在你的账户里减去100万。
  2. 在你朋友的账户里加上100万。

这两个操作执行其中一个行不行?仔细想想:

只执行前一个,那100万是不是就凭空消失!!!
只执行后一个,是不是凭空多出100万!!!

所以这两个操作就必须是一个事务啊,就叫它转账事务吧
这个转账事务两个操作必须要么都执行,要么都不执行,这才对。

在MySql中使用事务

首先表类型必须是InnoDB,如果不是,使用下面语句修改表类型。

1
ALTER TABLE table TYPE = innodb

MySQL默认是autocommit模式,即每一条sql语句都直接写入到数据库。

你需要使用下面的语句开始一个事务。

1
start transaction;

在你执行完组成事务的一系列SQL语句后,就可以提交事务了。

1
commit

如果你改变主意,想回到最初的状态,在提交(commit)之前。

1
rollback