一.什么是事务
事务Transaction,是指作为一个基本工作单元执行的一系列SQL语句的操作,要么完全地执行,要么完全地都不执行。
二.事务的特性
原子性
事务是一个整体 ; 不允许出现成功一半失败一半的情况, 如果后续步骤有失败那么就将前面成功的操作进行回退(撤销 回滚)
一致性
从一个一致性状态切换到另一个一致性状态
隔离性
事务的结果在最终提交之前对于外界是不可见的<外界不可见事务的中间状态>
持久性
一旦提交数据到数据库中 就会永久保存; 一旦提交不允许撤销<回滚>
三.事务的使用方法
1.开启事务
begin;
或者
start transaction;
或者
start transaction;
2.回滚事务
如果想要放弃之前的修改,返回到事务开始前的状态,可以对事务进行回滚(事务执行失败会自动回滚)
rollback;
3.事务的提交
如果确定要修改数据,需要执行事务提交指令(不执行事务回滚,事务提交,事务会一直处于未完成状态)
commit;
使用事务的注意事项
1. mysql命令行 insert update delete默认自动开启事务 默认会自动提交
2. 参数 set autocommit = 0 可以关闭自动提交 就可以在自动开启事务的情况下 手动提交事务
3. 不能回滚的操作 创建/删除 数据库/表结构 create/drop table等<隐式提交>
4. 能够回滚的操作 对表数据的 insert update delete