psql提示符显示为my_database=?>是什么原因?
psql出现
my_database=?>提示符的具体含义 这个状态完全是psql的正常交互逻辑,不是程序bug或者终端异常:
- 你手滑误触按键时,大概率输入了未配对的语法符号、不可见控制字符,或者半段未完成的输入内容,psql判定当前语句没有输入完成,就会切换提示符状态,等待你继续补全剩余内容。
- psql的提示符末尾符号是专门用来标识当前输入状态的:
- 普通用户正常等待新语句输入时,提示符末尾为
=>;超级用户则为=# - 等待补全单引号包裹的字符串时,提示符变为
'> - 等待补全双引号包裹的标识符(表名、字段名等)时,提示符变为
"> - 你遇到的
?>是通用待补全提示,一般是psql识别到当前输入存在未闭合的语法结构,但没法匹配到上述明确的待补全类型时触发——最常见的诱因就是误触输入了不可见控制字符、半段转义符号、不完整的元命令,或者输入过程中信号传输被按键打断导致解析状态异常。
- 普通用户正常等待新语句输入时,提示符末尾为
- 这个状态下不需要重启psql,要么补全对应的闭合语法符号,要么直接按
Ctrl+C中断当前未完成的输入,就能立刻回到正常的交互提示符,不会对数据库内的数据产生任何影响。
内容的提问来源于stack exchange,提问作者Glenn
相关产品推荐
相关产品推荐

