Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在Postgres中使用rowversions实现增量客户端更新_Sql_Sql Server_Database_Postgresql - Fatal编程技术网

Sql 在Postgres中使用rowversions实现增量客户端更新

Sql 在Postgres中使用rowversions实现增量客户端更新,sql,sql-server,database,postgresql,Sql,Sql Server,Database,Postgresql,我是博士后的新人,到目前为止我很喜欢博士后。我已经对这个问题进行了很多思考,RTFM尽了我最大的能力,但是遇到了死胡同,所以我需要朝着正确的方向推动 我正在设计一个数据库,其中每个感兴趣的实体都有一个rowversion列,该列从全局序列中分配一个值。因此,在最简单的场景中,在具有两行的表emps中:emp1withrowversion@3和emp2与rowversion@5,我知道emp2在emp1(即在以后的事务中-不介意同一事务中的行是否具有相同的rowversion) 这是为了形成一个数

我是博士后的新人,到目前为止我很喜欢博士后。我已经对这个问题进行了很多思考,RTFM尽了我最大的能力,但是遇到了死胡同,所以我需要朝着正确的方向推动

我正在设计一个数据库,其中每个感兴趣的实体都有一个
rowversion
列,该列从全局序列中分配一个值。因此,在最简单的场景中,在具有两行的表
emps
中:
emp1
with
rowversion@3
emp2
rowversion@5
,我知道
emp2
emp1
(即在以后的事务中-不介意同一事务中的行是否具有相同的
rowversion


<>这是为了形成一个数据同步逻辑的基础,其中一个知道他们拥有所有直到3的客户端,可以从一个查询中获得最新的更新,例如从EMPs中的“代码>选择”*,其中RoVix> 3和RaveVoR3和RoValue

结果表明,解决方案比PrimGr.'/P>要简单得多。

  • txid\u current()
    可在触发器中用于分配记录的
    行版本
  • txid\u snapshot\u min(txid\u current\u snapshot())
    可用于获取最小活动事务,与SQL Server用户使用
    min\u active\u rowversion()的方式相同
最好的部分是它们是64位的、永久的、不需要真空处理的:

这些函数导出64位格式,并使用“历元”计数器进行扩展,以便在安装期间不会缠绕

博士后真是太棒了

@3 - committed
@4 - committed
@5 - committed
@6 - in progress - not committed yet
@7 - committed
@8 - in progress - not committed yet
@9 - committed