postgresql 在PSQL上执行基本查询不会显示任何内容

6bc51xsx  于 2023-01-17  发布在  PostgreSQL
关注(0)|答案(3)|浏览(536)

我已经在命令行上连接到我的psql数据库,可以运行像\dt或类似的命令就好了。
但是,当我键入SELECT * FROM myTable之类的基本查询并按回车键时,它什么也不显示,只是转到下一行等待另一个命令。
知道为什么吗?

qmelpv7a

qmelpv7a1#

您需要使用;终止查询
SELECT * FROM myTable;

nbysray5

nbysray52#

实际上,上述问题还有一个不太明显的原因,如果你在查询中的某个地方省略了一个右括号()),你会得到同样的结果。

SELECT *
    FROM some_table
    WHERE (NOW() - date_value;

它不会尝试执行语句,直到它得到一个结束的);,在它吐出语法错误之前。虽然上面的问题是相当明显的,它得到了很多棘手的发现与更复杂的查询。为了摆脱它,结束与多个括号)))))))));,这仍然会解决和吐出语法错误,以便您可以继续和更正。
如果是这种情况,一种方法是使用向上箭头浏览历史记录-如果您没有看到以前输入的(但尚未执行的)语句,则您知道您仍然处于它试图在尝试语法检查之前关闭语句的状态。
这个问题不仅限于方括号,还包括任何其他结束符号,如引号。诀窍是注意psql提示符,因为它显示了解析状态。

  • DATABASE=>=>表示一切正常,它正在解析一行
  • DATABASE->->意味着您正在使用一个新行,可能缺少;
  • DATABASE(>(>表示您尚未关闭括号
  • DATABASE'>'>表示您尚未结束报价。

等等,你明白的。

wztqucjr

wztqucjr3#

我通过点击查询终端右上角的最大化按钮修复了这个问题。(PGADMIN4-PostgreSQL 15)
我使用的是PostgreSQL 15,正在运行查询。然后我最大化了查询终端,之后,我再也无法查看成功运行的查询。然后我点击了最大化屏幕,发现结果只是被隐藏在最大化的查询终端后面。
希望这有帮助!

相关问题