事务
什么是事务?
事务就是一个操作或一系列操作,他们要么全部执行,要么全部都不执行。
想象你用支付宝转账100万给你朋友,这里包含两个操作:
- 在你的账户里减去100万。
- 在你朋友的账户里加上100万。
这两个操作执行其中一个行不行?仔细想想:
只执行前一个,那100万是不是就凭空消失!!!
只执行后一个,是不是凭空多出100万!!!
所以这两个操作就必须是一个事务啊,就叫它转账事务吧
这个转账事务两个操作必须要么都执行,要么都不执行,这才对。
在MySql中使用事务
首先表类型必须是InnoDB,如果不是,使用下面语句修改表类型。
1 | ALTER TABLE table TYPE = innodb |
MySQL默认是autocommit模式,即每一条sql语句都直接写入到数据库。
你需要使用下面的语句开始一个事务。
1 | start transaction; |
在你执行完组成事务的一系列SQL语句后,就可以提交事务了。
1 | commit |
如果你改变主意,想回到最初的状态,在提交(commit)之前。
1 | rollback |