Postgresql手册事务隔离级别笔记
来源:互联网 发布:it招聘信息网 编辑:程序博客网 时间:2024/06/11 21:00
postgresql提供两种事务的隔离级别,read committed和Serializable,read committed在一次事务中
的每次操作总是使用新的快照,所以事务中的操作每次看到的结果可能不一样,Serializable事务中每次操作
使用相同的快照,所以事务中看到的结果是一样的.(快照是执行事务时第一次操作时产生的)
对于处于read committed下的事务类似select xxx from xxx后执行修改操作,这种情况下两者看到的结
果可能不一样,可以用以下两种方法解决.
1. 使用 select xxx from xxx for share,这样被选中的行将不会被修改到了( 这里被选中行添加row share 锁).
2. 可以直接执行update xxx set xxx=xxx where 加具体的条件,这里在真正的修改发生时如果发现要修改的
对象已经被修改将会再次计算where的条件是否满足,满足了后才会修改.但是这要满足一定的业务需求,如下
面的需求:website是个有两行数据表。website.hits分别为9和10:
BEGIN;UPDATE website SET hits = hits + 1;-- run from another session: DELETE FROM website WHERE hits = 10;COMMIT;本意如果是想删除hits=10的行,这里就可能出错,遇上这种情况推荐使用1的语句.当然也可以使用Serializable
的隔离级别处理,不过这时如果website满足要求的行是被修改过的,将会报错
ERROR: could not serialize access due to concurrent update只能重启事务了
0 0
- Postgresql手册事务隔离级别笔记
- PostgreSQL事务隔离级别
- 数据库事务隔离级别测试-postgresql
- PostgreSQL学习笔记9之事务隔离
- PostgreSQL学习笔记9之事务隔离
- 数据库事务隔离级别 之 学习笔记
- Oracle学习笔记20150903事务隔离级别
- 事务级别 锁 隔离级别
- 事务隔离级别
- SQL事务隔离级别
- 关于事务隔离级别
- 关于事务隔离级别
- 事务隔离级别
- 事务隔离级别
- 数据库事务隔离级别
- SQL事务隔离级别
- JDBC事务隔离级别
- SQL事务隔离级别
- jquery设为首页,加入收藏代码
- memset的用法
- 不该失去的,一块钱也不放弃
- 判断一条单链表是否有环
- The Decoder - UVa458
- Postgresql手册事务隔离级别笔记
- javascript学习笔记
- 单例程序的实现
- 为何会出现 label 不能解决的问题,求帮助
- 随想录(rtos和一般os的区别)
- 妈妈培养天才的13绝招
- 自定义控件之触摸事件的传递
- 用UIScrollView实现相册,并设置滚动条消失,改变UIPageControl的颜色,实现循环滚动相册
- SQL经典面试题目总结