mysql学习之事务处理

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针对每个连接,不是服务器







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值