一、事务控制
什么是事务控制:在操作数据时需要让有关系的数据进行联动(一起有效、无效)。
注意:数据定义语句立即有效,不需要事务控制,只有数据操作语句才需要事务控制。
1、commit提交
一个用户向表中插入一条记录,其它用户并不能立即查询到,只有执行提交命令才确定有效。
注意:MySQL数据库默认设置了自动提交
查看是否开启自动提交:show variables like 'autocommit';
'autocommit', 'OFF' 关闭
'autocommit', 'ON' 开启
设置当前连接的自动提交:set session autocommit=1|0;
设置所有连接的自动提交:set global autocommit=1|0;
当需要执行原子操作时,需要关闭自动提交,当所有操作完成后才执行commit命令。
2、rollback回滚
当使用数据操作语句对数据进行更改时,如果还没有commit,那么就可以使用rollback撤销,把数据还原成修改前的样子。
3、savepoint保存点
默认情况下执行rollback语句,数据会加到最近一次的commit,设置保存点可以在rollback时返回到指定的位置。
操作1
savepoint sp1;
操作2
savepoint sp2;
操作3
savepoint sp3;
操作4
如果还是直接执行rollback语句,四项操作还是会直接消失,让rollback与保存点配合,返回的指定的位置:rollback to savepoint spn;
二、查询