在psql中输入语句出错时如何无需重打全部内容修正错误行
数据库语句输入错误免重录修正方案
以下是不同场景下的通用操作方法,覆盖绝大多数常用数据库客户端:
- 命令行客户端场景(MySQL、MariaDB、PostgreSQL psql、SQLite3等)
如果你还没输入语句结束符(通常是;),仍处于多行输入状态:
这类客户端默认都支持readline行编辑功能,直接用快捷键定位到错误位置修改即可,完全不需要终止输入:Ctrl + A:跳转当前行开头,Ctrl + E跳转当前行末尾Alt + B:向前跳转一个单词,Alt + F向后跳转一个单词Ctrl + D:删除光标当前位置的字符
如果你已经输入结束符执行后才发现错误:- 直接输入
\e(MySQL/MariaDB也可以用edit命令),会自动调出系统默认编辑器打开你上一条输入的完整语句,修改完成后保存关闭编辑器,修正后的语句会自动加载到命令行,直接回车就能执行,不用重新录入全部内容 - 也可以按
Ctrl + R触发历史语句搜索,输入你之前写的语句的关键词,就能快速调出整段错误语句,直接修改后执行
- 图形化客户端场景(DBeaver、Navicat、DataGrip、MySQL Workbench等)
直接在当前的查询编辑窗口里找到错误的位置修改即可,修改完成后选中要执行的语句段,点击执行按钮就可以,不需要重写整段内容 - 长语句特殊场景(存储过程、函数、触发器等超多多行语句)
建议写这类内容时先不要输入结束符,逐行编写过程中随时用上面的快捷键调整错误;如果写到一半才发现前面很多行有错,也可以按Ctrl + C终止当前输入,再用\e调出编辑器修改历史输入的内容,比逐行重敲效率高很多
内容的提问来源于stack exchange,提问作者Joran Van Bockhaven
相关产品推荐
相关产品推荐

