概念
- 在MySQL中的事务,是由存储引擎实现的,只有InnoDB存储引擎支持事务
- 事务处理可以用来维护数据库的完整性,保证成批的SQL语句要么全部执行,要么全部不执行
- 事务用来管理DDL、DML、DCL操作,比如insert、update、delete语句,默认是自动提交的
事务操作
MySQL的事务操作主要有以下三种:
- 开启事务:任何一条DML语句(insert、update、delete)执行,标志事务的开启
- 提交事务:成功的结束,将所有的DML语句操作历史记录和底层硬盘数据来一次同步
- 回滚事务:失败的结束,将所有的DML语句操作历史记录全部清空
注意: 我们的每次增删改操作其实也有事务,只是MySQL默认开启的自动提交事务,所以我们每次执行sql的时候是MySQL自动帮我们提交了事务,因此要想手动控制事务,则必须关闭MySQL的事务自动提交。在MySQL中直接用set来改变自动提交模式 set autocommin = 0 关闭自动提交事务;set autocommin = 1 开启自动提交事务;
案例
模拟简单银行转账
#前置准备 创建账户表
create table account(
id int primary key,
name varchar(20)