pg事务
来源:互联网 发布:手机视频会议软件 编辑:程序博客网 时间:2024/04/28 05:49
1,为什么使用事务:对数据进行多次增删改后,如果要保证所有的操作同时成功,或者同时失败,必须使用事务。
2,什么是事务:事务是业务上的一个逻辑工作单元,能够保证对数据所有的操作,要么全部成功,要么失败。
3,原理:主要依赖于日志,如果食物没有完成,则日志中没有结束标记,数据库就会执行前面各步的反向操作。
4,特征:ACID原子性,一致性,隔离性,持久性
5,如何使用事务:只说pgsql
begin;
sql1;
sql2;多次数据操作
commit;
解释:执行不成功时,数据库将会自动执行rollback
6,结束事务:
确认修改:commit;
撤销修改:rollback;
7,局部回滚或局部提交:
利用事务保存点savepoint a;rollback to savepoint a;表示保存点以后的所有数据操作取消。
8,在事务结束以后,在执行commit和rollback是没有用的。
9,提交模式:
自动提交:autocommit=on;这种模式下是无法支持事务的;
手动提交:autocommit=off;必须执行commit才能提交。
10,事务隔离级别:从低到高,并发性由高到低:
未提交读:一个事务可以读到其他事务未提交的数据。
提交读:一个事务只能读到其他事务已经提交的数据。
可重复读:一个事务中,不管数据有没有被其他事务修改,读到的数据都是不变的。
串行读:一个事务要操作数据,必须要等到其他事务结束才能访问,包括查询。
set transaction isolation level设置事务隔离级别
传统的数据库有四个隔离级别
隔离级别
脏读(Dirty Read)
不可重复读(NonRepeatable Read)
幻读(Phantom Read)
读未提交(Read uncommitted)
可能
可能
可能
读已提交(Read committed)不可能可能可能可重复读(Repeatable read)不可能不可能可能可串行化(Serializable )不可能不可能不可能
脏读(Dirty Read)
不可重复读(NonRepeatable Read)
幻读(Phantom Read)
读未提交(Read uncommitted)
可能
可能
可能
读已提交(Read committed)不可能可能可能可重复读(Repeatable read)不可能不可能可能可串行化(Serializable )不可能不可能不可能
但是在内部,实际上只有两种独立的隔离级别,分别对应读已提交和可串行化。
0 0
- pg事务
- PG数据库事务隔离级别
- PG数据库事务隔离级别
- PG数据库事务隔离级别
- pg(hgdb)默认事务自动提交
- PostgreSQL服务过程中的那些事二:Pg服务进程处理简单查询一:开启事务
- pg问题
- linux -pg
- pg函数
- pg进程
- pg常用命令
- pg横表转竖表
- 什么是PG
- pg数据库连接
- fat32下安裝PG
- PG,PM,CIO
- PG整合功略
- PG经验贴-实用技巧
- coverHull函数的用法
- Linux UDP C/S例子
- iOS xib 重设Frame
- 【约稿】给自己交一份年度总结——我的2014年
- jquery.validate.min.js 用法方法示例
- pg事务
- 比较源目录与备份目录的差异,并复制
- Android源码搜索
- 【COCOS2DX-LUA 脚本开发之九】使用cocos2dx-LuaProxy便捷Lua项目快速使用cocos2dx引擎extensions扩展包
- App Store 审核指南
- 使用DDMS 测试应用网络连接传输状态
- Android Studio系列教程一--下载与安装
- 好故事成就好营销
- Python内建序列之元组