1、事务核心概念
MyISAM不支持事务(每一个SQL自动就提交了,不能做转账这种多条SQL组成的业务啊)!
InnoDB支持事务,支持行锁 !(InnoDB最大的2个特点)
事务的概念
- 一个事务是由一条或者多条对数据库操作的SQL语句所组成的一个不可分割的单元;
- 只有当事务中的所有操作都正常执行完了,整个事务才会被提交给数据库;
- 如果有部分事务处理失败,那么事务就要回退到最初的状态,因此,事务要么全部执行成功,要么全部失败。
有的业务需要1条以上的SQL语句共同完成,只有这些SQL都成功了才算业务成功了。
类似于银行的转账,商品的入库出库的场景:
转账业务由2条SQL组成。 没有一部分成功一部分失败这一说。
begin开启事务,如果这2句SQL都成功了,那么commit提交一个事务。
事务的三个状态: