1、事务处理:用来维护数据的完整性、保证成批的MySql操作要么完全执行、要么完全不执行。
2、使用ROLLBACK命令来撤销mysql语句
实例:
[1]select * from task;//表数据不为空
[2]start transaction;//标识事务的开始
[3]delete from task;//删除表中所有数据
[4]select * from task;//表数据为空
[5]Rollback; //回退到start transaction 此语句后事务将自动关闭
[6]select * from task;//与[1]数据相同
只能回退Insert、update、delete操作,不能回退Create、Drop、Select操作
3、使用COMMIT语句
一般的Sql语句是隐含提交,也就是自动提交,不需要COMMIT语句,但是在事务处理模块中不会自动提交。
使用COMMIT语句来明确提交。
Start transaction;
delete from task where czid = 0001;
delete from task_detail where czid = 0001;
COMMIT;//此语句后事务将自动关闭。
当第一个delete成功,第二个delete失败,事务会自动撤退第一个delete。
这样能保证delete操作完整执行。
4、使用保留点SavePoint语句
创建保留点
SavePoint delete1; 保留点名字需唯一
RollBack To delete1; 回退到delete1.
保留点可根据自己的需要任意设置,以便灵活的回退
释放保留点:在执行完RollBack 或 COMMIT 后会自动释放。
mysql5以后,可用Release savepoint释放
5、更改默认提交
sql语句对表进行操作时,都是立即提交生效的。若有需要明确规定mysql不自动提交则使用
SET autocommit=0;
//为0时,不会自动提交,直到此值被设置为真时自动提交。autocommit针对每个连接,不是服务器