psql Shell执行SELECT * FROM表时卡在-- More --的问题求助
解决psql终端卡在-- More --的问题
嘿,这个场景我太熟悉了!当psql返回的结果超过终端一屏时,默认会调用分页工具(通常是less)来逐屏显示,所以才会出现-- More --的提示。给你两个实用的解决方案:
1. 一次性显示所有查询结果
你有两种方式可以关闭分页功能:
临时关闭(当前会话有效)
在psql提示符下执行这条命令:
\pset pager off
之后再执行SELECT * FROM person;,所有500条数据就会直接全部输出到终端,不会再触发分页。
永久关闭(所有会话生效)
如果不想每次都手动关闭分页,可以修改psql的配置文件:
- 打开终端,编辑
~/.psqlrc文件(如果没有就新建一个):nano ~/.psqlrc - 在文件中添加一行:
\pset pager off - 保存退出后,下次打开psql就会自动关闭分页功能。
另外,如果你是直接在Mac终端用psql命令执行单条查询,也可以直接加参数跳过分页:
psql -U 你的用户名 -d 你的数据库名 -c "SELECT * FROM person"
用-c参数执行单条SQL时,psql默认不会启用分页。
2. 在-- More --状态下直接输入下一条命令
如果已经卡在-- More --了,不用终止终端,直接按q键就能退出分页器,回到psql的命令提示符,这时就可以输入下一条SQL命令了。
顺便提几个分页器的常用快捷键,说不定能帮到你:
- 按空格键:翻到下一页
- 按G(大写):直接跳到最后一页
- 按b:回到上一页
内容的提问来源于stack exchange,提问作者user12517877
相关产品推荐
相关产品推荐

