sql-server - 是否有 CHANGE_TRACKING_CURRENT_VERSION (T-SQL) 的 PostgreSQL 类似物?
问题描述
我正在尝试在 PostgreSQL 过程中转换一些 SQL Server 存储过程,但我没有找到CHANGE_TRACKING_CURRENT_VERSION
(T-SQL)的 PostgreSQL 类似物。是否可以检索与最后提交的事务关联的值?我将使用这个值作为同步参数。我会将这个同步参数和表名传递给该过程,并将它与当前的更改跟踪值进行比较。如果它们不同,则表示该表已被修改,我可以对修改后的行执行某些操作。
解决方案
经过我的调查,我会说我们可以尝试使用pg_last_committed_xact
. 它返回xid
和timestamp
。我们不需要timestamp
,但我们可以将其用作(T-SQL)xid
的类似物。CHANGE_TRACKING_CURRENT_VERSION
这两个函数都在 DML 操作后返回一个新值。
https://www.postgresql.org/docs/current/functions-info.html#FUNCTIONS-COMMIT-TIMESTAMP
更新:
我错了。我们不能pg_last_committed_xact
用作CHANGE_TRACKING_CURRENT_VERSION
.
该pg_last_committed_xact
值将在每次成功事务后递增,而CHANGE_TRACKING_CURRENT_VERSION
仅当将 DML 操作应用于启用更改跟踪的表时,该值才会更改。
推荐阅读
- javascript - 循环遍历包含对象的数组对象
- c# - Gradle 启动失败:意外令牌:...@ 第 83 行,第 7 列
- python - 您如何比较两个随机生成的列表以找到共同的元素
- python - 当子元素使用 selenium 匹配文本时选择父子元素
- javascript - AudioContext:声音不在 Chrome 中播放,但在 Internet Explorer 中工作,但在我注释掉 createMediaElement?t 时工作人员
- c++ - 将成员函数分配给实例成员的属性
- java - 如何在jshell中为spring项目设置类路径
- python - 如何在 Python 中使用 re.sub?
- php - 服务器随时间变慢
- java - hibernate_sequence 创建重复键 'PRIMARY'