谈谈mysql的事务

过去长期使用Oracle进行数据库开发,对其中事务处理印象颇深。系统管理员设置的自动提交是关闭的,必须显式的commit或者rollback一个事务,也不用使用专门语句开始一个事务,存储过程和函数中均可以使用commit或rollback。日常的数据维护团队早就适应了这样的模式,感觉也蛮方便。

近期使用mysql开发,初涉其中的事务,其自动提交是打开的。默认配置下,每句sql之后会自动commit。另外,在存储函数中不允许显式或隐式commit或rollback,但在存储过程中却是可以的。换言之,存储函数是不会去干涉现存事务的提交或回滚的,可以在事务中自由的调用函数而不会影响事务的界限;但是存储过程是允许commit或rollback事务的,所以在一个事务处理中调用存储过程一定要考虑清楚事务的界限。

事务处理的细节在并发处理时是需要考虑的,例如:mysql中没有序列号sequence,常见的实现sequence的方法是写存储过程或函数模拟,这个过程中一定要考虑清楚事务的处理及并发的访问。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值