PostgreSQL命令行如何快速删除正在输入的未执行查询?
在psql中快速清除未执行查询的方法
嘿,完全懂你这种想快速切换思路的需求!在PostgreSQL的命令行工具psql里,其实有好几种方法可以快速清除还没执行的输入内容,不用纠结之前打了多少字:
单输入行的快速清除
Ctrl+U:直接删除光标位置到行首的所有内容。如果你的光标已经在输入行的末尾,这就相当于清除整行未执行的内容,和你在bash里的操作习惯很接近。Ctrl+K:和上面的操作互补,删除光标位置到行尾的内容。如果只是后半段输入出错,用这个更高效。
多行输入的情况(比如写了半段SQL语句)
如果已经输入了多行还没执行(比如写了半段带换行的SELECT),这时候:
- 直接按
Ctrl+C:这个快捷键会终止当前的输入会话,直接回到干净的psql提示符,所有未执行的多行内容都会被清除。这里要澄清下:Ctrl+C在psql里如果是查询正在运行时是终止查询,但如果只是在输入阶段,就是清空当前输入的所有内容,刚好适配你切换思路的场景。 Ctrl+\:如果遇到极端情况(比如输入了嵌套的引号导致psql卡在输入状态),按这个组合键可以强制中断输入,回到正常提示符。
额外小技巧
如果你只是想撤销上一步输入,还可以用**Ctrl+_**(下划线,需要按住Shift),这是逐字符撤销的快捷键,适合小范围修正。
举个实际例子:
假设你在psql里输入了:
postgres=# select * from products where name like '%apple'
这时候突然想换个查询思路,直接按Ctrl+C,就会立刻回到干净的提示符:
postgres=#
完全不用手动删除之前的内容,完美适配你切换思路的需求!
内容的提问来源于stack exchange,提问作者rococo
相关产品推荐
相关产品推荐

