首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >奇怪的postgresql客户端时间转移问题后,笔记本电脑待机?

奇怪的postgresql客户端时间转移问题后,笔记本电脑待机?
EN

Database Administration用户
提问于 2022-12-13 00:06:36
回答 1查看 19关注 0票数 0

我遇到了这个奇怪的问题,我使用sqlworkbench/J (一个java客户端)连接到本地pg14数据库,笔记本电脑挂起,早上运行以下查询:

代码语言:javascript
复制
select current_setting ('TIMEZONE'), current_timestamp, current_timestamp::timestamp;

...I收到了以下结果:

亚洲/上海-----------------+-------------------------------+---------------------------- 2022-12-12 17:30:30.425635+08 2022-12-12 17:30:30.425635

但是,如果我打开(与sudo -u postgres psql的一个新会话),相同的查询将给我

亚洲/上海-----------------+-------------------------------+---------------------------- 2022-12-13 07:30:36.760764+08 2022-12-13 07:30:36.760764

我也尝试了pgmodeler,同样的正确结果。

sqlworkbench/j中所有涉及currenttimestamp的后续查询都会产生持续错误的结果(这就是我如何注意到的,我的一些涉及current_time - some_log_time的查询变成了负值,这在逻辑上是不可能的)。但是在我重新启动workbench/j之后(也许简单的重新连接就足够了,我很遗憾,我一开始就选择重新启动)。一切又恢复正常。

这种故障背后的逻辑是什么?current_timestamp不是仅在服务器端处理吗?(我的意思是说,无论工作台/j发生了什么情况,在这种情况下,查询为什么会产生负的时间差,这意味着服务器在该sql会话的查询处理中真的将current_timestamp作为17:xx,对吧?同时,新的会话被正确地视为7:xx )

EN

回答 1

Database Administration用户

回答已采纳

发布于 2022-12-13 03:41:44

故障就在你这一边。旧会话启动了一个事务,并将其打开了几个小时。current_timestamp显示了启动事务的时间,不管事务需要多长时间。

可能在您的交互式客户端中禁用了自动提交。这是一个错误,因为它可能会对您的PostgreSQL数据库造成损害:您的事务可以防止自动清除死元组,如果有很多UPDATEs,这会让您的表不合理地增长。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/320881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档