概念
- 在MySQL中的事务(Transaction)是由存储引擎实现的,在MySQL中,只有InnoDB存储引擎才支持事务
- 事务出来可以用来维护数据库的完整性,保证成批的SQL语句要么全部执行,要么全部不执行
- 使用用来管理DDL、DML、DCL操作,比如insert,update,delete语句,默认是自动提交的。
事务操作
MySQL的事务操作主要有以下三种:
- 开启事务:Start Transaction
- 任何一条DMl语句(insert、update、delete)执行,标志事务的开启
- 命令:BEGIN 或START TRANSACTION
- 提交事务:Commint Transaction
- 成功的结束,将所有的DML语句操作历史记录和底层硬盘数据来一次同步
- 命令:COMMIT
- 回滚事务:Rollback Transaction
- 失败的结束,将所有的DML语句操作历史记录全部清空
- 命令:ROLLBACK
注:
- 之前的所有SQL操作其实也有事务,只是MySQL自动的帮助我们完成的,每执行一条SQL时MySQL就帮助我们自动提交事务,因此如果想要手动控制事务,必须关闭MySQL的事务自动提交。
- 在MySQL中直接用SET来改变MySQL的自动提交模式
SET autocommit=0 -禁止自动提交
SET AUTOCOMMIT =1 - 开启自动提交
例如:
create database