1,基本概念
1,只有innodb存储引擎支持事务,行级锁定,外键
2,事务处理可以用来维护数据库的完整性,保证成批的sQL语句要么全部执行,要么全部不执行
3,事务用来管理DDL、DML、DCL操作,比如insert,update,delete语句,默认是自动提交的。
4,为什么我们需要事务管理DDL,DML,DCL操作?因为这些操作都是对数据库有一些增删改的动作,有时候为了完成一个逻辑动作必须要用两个或者多个sql语句执行这个逻辑动作。因此我们必须确保这些sql语句都成功或者都失败。例如银行转账问题,转账动作结束:有两个sql操作:A的账户余额要减少,B的账户余额要增加。如果单独只完成一个操作可能会有问题。
2,基本操作
1,之前的所有SQL操作其实也有事务,只是MySQL自动帮我们完成的,每执行一条SQL时MySQL就帮我们自动提交事务,因此如果想要手动控制事务,则必须关闭MySQL的事务自动提交。
在MySQL中直接用SET来改变MySQL的自动提交模式:
set autocommit=0
禁止自动提交
set autocommi t= 1
开启自动提交
2、开启事务:命令:BEGIN或START TRANSACTION
<