MySQL可以选项卡完成shell命令和SQL声明。
但对于SQL,它只对大写输入完成。例如,'SEL'
适用于'SELECT'
但'sel'
不适用。
是否有类似于.inputrc
的MySQL,我可以将其配置为不区分大小写完成?
答案 0 :(得分:2)
我来到StackOverflow寻找这个问题的答案,但由于没有,我想我自己会研究答案。
MySQL命令行客户端链接到GNU Readline库以提供选项卡完成,因为MySQL客户端解析.inputrc
(从使用strace
可以看出来检查系统调用MySQL客户端),我认为它会关注set completion-ignore-case On
等选项。不幸的是,事实并非如此。
虽然我不是C ++开发人员,但我检查了source code for the command line client。
您可以看到build_completion_hash()
函数添加了诸如的名称
SQL关键字,表名和字段名称到哈希(快速有效的形式
数据结构)用于提供完成。但是,part
which adds SQL commands to the hash只会添加以下list of SQL commands。
大多数这些SQL命令都以大写字母列出,但有一些例外情况,如create database
,create table
,show databases
,show fields from
列出使用较低的 - 案件。由于此生成列表中的SQL关键字都是大写的,因此当以小写字母键入SQL关键字时,完成不起作用。
此列表曾用于包含SQL命令的简短列表(小写),例如select
,drop
,insert
。但是,在January 2008中,这个短列表被MySQL支持的生成的SQL命令列表所取代。
注意:我链接到MySQL的MariaDB分支源,因为它更易于访问。 MariaDB是一个二进制兼容的分支,来自现在由Oracle拥有的MySQL代码库(该项目由MySQL AB背后的同一个人运行)。从检查版本控制历史记录开始,我提到的客户端代码部分在过去几年中没有太大变化。
TLDR:答案似乎是否定。