• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > 关于PostgreSQL 版本识别 的详解

关于PostgreSQL 版本识别 的详解

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了PostgreSQL等相关知识,希望本文的分享对您有所帮助
Insert\delete\update通过ctid定位,并查看该记录xmin\xmax的变化。

Xid:数据库的事务ID;

Xmin:行头部的xid信息,xmin表示插入该记录的事务ID

Xmax:表示删除或lock该记录的事务ID

xid_snapshot:当前集群中为结束的事务

Clog:事务提交状态日志

记录格式的定义:htup_details.h:POSTGRES heap tuple header definitions.

1)查看所有xid相关的函数有哪些,这里需要的是txid_current函数

2)可以看到当前的事务ID

postgres=# select * from txid_current();
 txid_current
--------------
         1676
(1 row)
 
3)进行一次insert后,看事务ID已经+1
postgres=# insert into tt values(1);
INSERT 0 1
postgres=# select ctid,xmin,xmax,cmin,cmax,id from tt;
 ctid  | xmin | xmax | cmin | cmax | id
-------+------+------+------+------+----
 (0,1) | 1677 |    0 |    0 |    0 |  1
(1 row)

4)开启一个事务后,进行update

postgres=# begin;
BEGIN
 
postgres=# update tt set id=3;
UPDATE 1
postgres=# select ctid,xmin,xmax,cmin,cmax,id from tt;
 ctid  | xmin | xmax | cmin | cmax | id
-------+------+------+------+------+----
 (0,2) | 1678 |    0 |    0 |    0 |  3
(1 row)

5)在另外一个会话查看

postgres=#  select ctid,xmin,xmax,cmin,cmax,id from tt;
 ctid  | xmin | xmax | cmin | cmax | id
-------+------+------+------+------+----
 (0,1) | 1677 | 1678 |    0 |    0 |  1
(1 row)


看当前未结束的事务,或未开启的事务

postgres=# select *from txid_current_snapshot();
 txid_current_snapshot
-----------------------
 1684:1684:
(1 row)
 
postgres=# select * from txid_current();
 txid_current
--------------
         1684
(1 row)

记录事务是否提交,在这个文件里面,bit:

-rw-------. 1 pg pg 8192 Jun 10 04:19 0000
[pg@localhost pg_clog]$ pwd
/home/pg/data/pg_clog

本文介绍了PostgreSQL 版本识别 ,更多相关内容请关注微课江湖。

相关推荐:

讲解B/S与C/S究竟是何物

如何通过css3+html5实现纵向菜单

关于HTML5本地存储的相关讲解

以上就是关于PostgreSQL 版本识别 的详解的详细内容,更多请关注微课江湖其它相关文章!

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2018-12-05将count(*)值写入另一个表中的方法
  • 2018-12-05sqlserver主键设计的注意点
  • 2018-12-05MySQL数据库如何锁定和解锁数据库表?
  • 2018-12-05SQL SERVER的数据类型
  • 2017-05-11mysql日志滚动
  • 2017-05-11Mysql 插入中文及中文查询 (修改+调试)
  • 2018-12-05sql图形化操作设置级联更新和删除
  • 2018-12-05MySql如何取消密码强度验证
  • 2018-12-05MySQL 字符串函数大全
  • 2018-12-05Access数据库提示OleDbException (0x80004005): 操作必须使用一

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • mysql远程机器导入导出数据 锁表不锁表 部分数据或全部
    • Mysql5.7出现group by查询问题的解决办法分享
    • 在Windows上安装MongoDB(译)
    • oracle—SQL技巧之(二)WMSYS.WM_CONCAT函数实现多行记录用逗号拼
    • MYSQL中常用的强制性操作(例如强制索引)
    • select语句逻辑执行顺序 你知道吗
    • MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法详解
    • Spark SQL实现日志离线批处理
    • 如何使用Spring boot操作mysql数据库
    • Win10安装MySQL启动服务器失败且无错误提示

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有