您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

提交事务时以原子方式设置SERIAL值

提交事务时以原子方式设置SERIAL值

Postgres 引入了与此问题相关的新功能: 。

你只需要激活track_commit_timestamppostgresql.conf(并重新启动!)开始跟踪提交时间戳。然后您可以查询

SELECT * FROM tbl
WHERE  pg_xact_commit_timestamp(xmin) >= '2015-11-26 18:00:00+01';

阅读Postgres Wiki中的“提交时间戳跟踪”一章。手册中的 相关实用程序功能

函数波动性仅VOLATILE是因为事务ID(xid)可以围绕每个定义进行包装。因此,您 在其上 。 您可以IMMUTABLE在有限的时间内为应用程序伪装函数包装中的易变性,但是您需要注意其含义。

对于许多只关注提交顺序(而不是绝对时间)的用例(例如您的?),使用xmin强制转换为bigint“直接”(xmin::text::bigint)而不是提交时间戳可能更有效。(xid内部是一个无符号整数,上半部分不适合有符号integer。)同样,请注意由于可能的xid环绕而造成的限制。

出于同样的原因,提交时间戳记 。对于中小型数据库xid几乎不会发生环绕操作- 但是,如果群集的生存时间足够长,则最终会发生环绕操作。有关详细信息,请阅读手册中的“防止事务ID环绕失败”一章。

其他 2022/1/1 18:48:37 有384人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶