`

用xmin当作表的时间戳(postgresql)

阅读更多
postgresql的每个表都有个内置的、隐藏的字段xmin,存储的是修改时或插入时的xid(transaction id),只要该行一被修改,该XMIN就有变化,不信大家可以尝试一下。
(XMIN会+1)
所以实际应用中可以将xmin当作表的时间戳来处理。在C/S结构的应用设计中,我们常常有这样的流程:

1,下载表的一个记录(不锁定)
2,让客户端对这个缓冲进行交互式的修改
3,提交更新时,要先检测这个记录是否被其他用户修改(此时锁定),假如这个记录被其他用户所修改,则不提交修改,否则提交缓冲。

这个流程类似于ado的batch update。在VFP中,这叫乐观锁定远程视图.

在比较缓冲是否被其他用户修改时,有2种比较方法,1种是只比较本地所修改的字段,另外1种是比较所有的字段。

假如是第2种,就可以用时间戳来比较,以下是例子
1。下载表的一个记录(不锁定)SELECT *, XMIN AS OLD_XMIN FROM XXX WHERE ...
2. 让客户端对这个缓冲进行交互式的修改
3. 提交更新时,
   begin transaction;
   select * , xmin as new_xmin from xxx where .... for update
   if new_xmin <> old_xmin then
      -- 已被他人修改,抛出错误或其他流程
      rollback
   else
      update xxx set xxx=xxx where ...
      commit
   end

假如你的接口不接受xid数据类型, 可以将xid转换为integer,语句为cast(xmin as integer), 两者在postgresql内部都是同一类型, 不过xid 到 integer的类型转化不是postgresql内嵌的,所以还需要自定义这种转换
create cast (xid as integer) without function.

如果没有以上语句, cast(xmin as integer)可能不成功.
http://edu.codepub.com/2009/1130/18345.php
分享到:
评论

相关推荐

    xmind用例数据处理,使用pyecharts对xmind的数据进行数据处理,生产柱状图,散点图等

    在测试领域中,XMind 被广泛用于制作...加载 XMind 文件:使用 xmind.load() 方法加载 XMind 文件,将 XMind 文件转换为树形结构。 解析 XMind 数据:使用 xmind_to_dict() 方法解析 XMind 数据,将其转换为列表形式

    PostgreSQL 数据类型.xmind

    PostgreSQL中数据类型的思维导图,Xmind格式。包括以下分类,数值类型,货币类型,字符类型,日期时间类型,布尔类型,枚举类型,几何类型,网络地址类型,位串类型,文本搜索类型,UUID类型,XML类型,JSON类型,...

    智能手表.xmind

    智能手表.xmind

    xmind 思维导图

    XMind有4个版本:XMind Free(免费版), XMind Plus(增强版), XMind Pro(专业版), 和XMind Pro Subscription(专业订阅版)。其中,XMind Free是一款开源软件,作为基础版本,其虽然免费,但功能强大,并在...

    Vue项目搭建 .xmind

    Vue项目搭建 .xmind

    xmind资源文件免费分享

    xmind

    xmind文件转excle文件,使用python 脚本编写

    这个脚本首先加载Xmind文件,然后遍历其中的主题,提取每个主题的标题和描述,并将它们写入Excel的工作表。需要注意的是,这只是一个基础示例,实际使用时可能需要根据Xmind文件的具体结构和需求进行调整。 在处理...

    欢迎使用XMind_xmind模板.xmind

    欢迎使用XMind_xmind模板.xmind

    Gitxmind GIt bash 使用 xmind

    Gitxmind GIt bash 使用 xmindGitxmind GIt bash 使用 xmindGitxmind GIt bash 使用 xmindGitxmind GIt bash 使用 xmindGitxmind GIt bash 使用 xmindGitxmind GIt bash 使用 xmind

    Xmind使用教程PPT课件

    Xmind使用教程,Xmind使用教程课件,Xmind使用教程PPT

    XMind-2020-v10.1.3-免安裝-64位-解压就能用

    XMind_2020_v10.1.3_免安裝_64位-解压就能用,XMind_2020_v10.1.3_免安裝_64位-解压就能用,XMind_2020_v10.1.3_免安裝_64位-解压就能用,XMind_2020_v10.1.3_免安裝_64位-解压就能用,XMind_2020_v10.1.3_免安裝_64...

    登录测试点.xmind

    登录测试点.xmind

    Xmind模板超三百套

    使用Xmind的模板不仅仅是简单的套用,更重要的是,它们提供了思考的框架,激发了创新的火花。用户可以根据自己的需求对模板进行修改、调整,甚至创建属于自己的模板,这正是Xmind强大的地方。 总结来说,“Xmind...

    xmind图例怎么添加 xmind图例添加使用步骤流程.docx

    XMind图例添加使用步骤流程 XMind是一款功能强大且实用的可视化思维导图(Mindmap)软件,具有丰富的模板和多种实用的功能。然而,许多用户对图例的添加和应用还不是很熟悉。下面将介绍XMind图例添加使用方法,以...

    链表特点.xmind

    链表特点

    XMind转Excel工具安装包XMind转Excel工具安装包XMind转Excel工具安装包.zip

    XMind转Excel工具安装包XMind转Excel工具安装包XMind转Excel工具安装包.zip

    XMind7Pro激活序列号

    - 如果对XMind7 Pro的版本需求不高,可以考虑使用免费的XMind ZEN或开源的FreeMind、MindNode等其他思维导图软件。 总之,XMind7 Pro是一款强大而灵活的思维工具,合理利用激活序列号和管理软件联网设置,可以最大...

    xmind使用手册PPT

    xmind使用文件以及手册,方便更改的学习使用xmind

    xmind-8-update7-windows

    xmind-8-update7-windows.exe 下载路径:https://www.xmind.net/download/win/ 1.首先要断网 2.打开"c:\windows\system32\drivers\etc",以文本方式打开hosts,添加以下内容 # XMind Mind-Mapper 0.0.0.0 xmind...

    HTML核心.xmind

    HTML知识点速记,请搭配博客使用,注意是xmind文件。HTML知识点速记,请搭配博客使用,注意是xmind文件。HTML知识点速记,请搭配博客使用,注意是xmind文件。HTML知识点速记,请搭配博客使用,注意是xmind文件。HTML...

Global site tag (gtag.js) - Google Analytics