什么是事务

指作为单个逻辑工作单元执行的一些列操作,要么完全的执行,要么完全的不执行

例:

张三转账给李四,转账分有关键的两步,一是从张三的账户扣钱,二是给李四的账户加钱,这两个步骤是一个完全的整体,其中有一个步骤没成功就可以说转账这件事没有完成,里面有一个完成不了,那么就整个完成不了。把几件事组成一件,其中一件没有完成,这个事务就不能完成

事务的操作

查看/设置事务的提交方式

select @@autocommit;
set @@autocommit = 0

提交事务:

commit;

回滚事务:

rollback;

开启事务:

start transaction 或者 begin

事务的ACID

原子性:事务包含的所有操作要么全部成功,要么全部失败回滚

一致性:让数据保持一定上的合理,比如一个商品出库时,仓库商品数量要减少1,对应用户的购物车中商品数量增加1

隔离性:事务前面部分还没完成的时候,其他的是没法访问的

持久性:事务一旦提交,就没法更改了

并发事务的问题