如何验证我的终端的postgres连接是否与Intellij的数据相同?

时间:2017-07-05 23:39:44

标签: postgresql intellij-idea

我正在使用intellij和postgres,并突出显示sql命令来运行它们。

我也在我的终端中运行了postgres,并且在intellij中运行时与在终端中运行时相同的查询得到的结果不同。

这是从Intellij运行的命令: enter image description here

结果显示存在一个条目:

enter image description here

但是,在终端中运行相同的命令不会显示任何表项。

enter image description here

Intellij和终端连接到Intellij连接设置所示的相同数据库和端口

enter image description here

以及\conninfo在终端中运行的结果。

enter image description here

此外,模式匹配Intellij的连接设置(如上所示)和终端的\d+ visitor_sign_in命令的结果

enter image description here

为什么在Intellij中运行时,相同的命令会在终端中运行时给出不同的结果?

1 个答案:

答案 0 :(得分:1)

根据您最近的评论(“是的正在运行select * from pg_stat_activity;确实显示'在交易中闲置'。”),这是我认为正在发生的事情。

您有两个连接,A和B.

A启动事务,插入数据,然后从该表中进行选择。该表显示了数据(刚刚插入的数据)。

B连接,并从同一个表中选择。由于A没有提交,B没有看到该数据。为了使A插入的数据对任何其他连接可见,您需要A来提交其事务。

现在,我不知道为什么IntelliJ没有为您提供提交事务的机会,但缺少提交是导致可见性问题的原因。