我已经在命令行上连接到我的psql数据库,可以运行像\dt或类似的命令就好了。但是,当我键入SELECT * FROM myTable之类的基本查询并按回车键时,它什么也不显示,只是转到下一行等待另一个命令。知道为什么吗?
\dt
SELECT * FROM myTable
qmelpv7a1#
您需要使用;终止查询SELECT * FROM myTable;
;
SELECT * FROM myTable;
nbysray52#
实际上,上述问题还有一个不太明显的原因,如果你在查询中的某个地方省略了一个右括号()),你会得到同样的结果。
)
SELECT * FROM some_table WHERE (NOW() - date_value;
它不会尝试执行语句,直到它得到一个结束的);,在它吐出语法错误之前。虽然上面的问题是相当明显的,它得到了很多棘手的发现与更复杂的查询。为了摆脱它,结束与多个括号)))))))));,这仍然会解决和吐出语法错误,以便您可以继续和更正。如果是这种情况,一种方法是使用向上箭头浏览历史记录-如果您没有看到以前输入的(但尚未执行的)语句,则您知道您仍然处于它试图在尝试语法检查之前关闭语句的状态。这个问题不仅限于方括号,还包括任何其他结束符号,如引号。诀窍是注意psql提示符,因为它显示了解析状态。
);
)))))))));
psql
DATABASE=>
=>
DATABASE->
->
DATABASE(>
(>
DATABASE'>
'>
等等,你明白的。
wztqucjr3#
我通过点击查询终端右上角的最大化按钮修复了这个问题。(PGADMIN4-PostgreSQL 15)我使用的是PostgreSQL 15,正在运行查询。然后我最大化了查询终端,之后,我再也无法查看成功运行的查询。然后我点击了最大化屏幕,发现结果只是被隐藏在最大化的查询终端后面。希望这有帮助!
3条答案
按热度按时间qmelpv7a1#
您需要使用
;
终止查询SELECT * FROM myTable;
nbysray52#
实际上,上述问题还有一个不太明显的原因,如果你在查询中的某个地方省略了一个右括号(
)
),你会得到同样的结果。它不会尝试执行语句,直到它得到一个结束的
);
,在它吐出语法错误之前。虽然上面的问题是相当明显的,它得到了很多棘手的发现与更复杂的查询。为了摆脱它,结束与多个括号)))))))));
,这仍然会解决和吐出语法错误,以便您可以继续和更正。如果是这种情况,一种方法是使用向上箭头浏览历史记录-如果您没有看到以前输入的(但尚未执行的)语句,则您知道您仍然处于它试图在尝试语法检查之前关闭语句的状态。
这个问题不仅限于方括号,还包括任何其他结束符号,如引号。诀窍是注意
psql
提示符,因为它显示了解析状态。DATABASE=>
=>
表示一切正常,它正在解析一行DATABASE->
->
意味着您正在使用一个新行,可能缺少;
DATABASE(>
(>
表示您尚未关闭括号DATABASE'>
'>
表示您尚未结束报价。等等,你明白的。
wztqucjr3#
我通过点击查询终端右上角的最大化按钮修复了这个问题。(PGADMIN4-PostgreSQL 15)
我使用的是PostgreSQL 15,正在运行查询。然后我最大化了查询终端,之后,我再也无法查看成功运行的查询。然后我点击了最大化屏幕,发现结果只是被隐藏在最大化的查询终端后面。
希望这有帮助!