Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL shell中不区分大小写的补全_Mysql_Autocomplete - Fatal编程技术网

MySQL shell中不区分大小写的补全

MySQL shell中不区分大小写的补全,mysql,autocomplete,Mysql,Autocomplete,MySQL可以完成shell命令和SQL声明 但对于SQL,它只完成大写输入。例如,'SEL'适用于'SELECT',但'SEL'不适用 是否有类似于MySQL的.inputrc的东西,我可以将其配置为不区分大小写的完成?我来StackOverflow寻找这个问题的答案,但因为没有,我想我应该自己研究答案 MySQL命令行客户端与GNU Readline库相链接,以提供制表符完成,并且由于MySQL客户端解析.inputrc(可以从使用strace检查MySQL客户端发出的系统调用中看出),我想

MySQL可以完成shell命令和SQL声明

但对于SQL,它只完成大写输入。例如,
'SEL'
适用于
'SELECT'
,但
'SEL'
不适用


是否有类似于MySQL的
.inputrc
的东西,我可以将其配置为不区分大小写的完成?

我来StackOverflow寻找这个问题的答案,但因为没有,我想我应该自己研究答案

MySQL命令行客户端与GNU Readline库相链接,以提供制表符完成,并且由于MySQL客户端解析
.inputrc
(可以从使用
strace
检查MySQL客户端发出的系统调用中看出),我想它会注意一些选项,比如
上设置completion ignore case。不幸的是,事实并非如此

使用来源,卢克 虽然我不是C++开发人员,但我检查了.< 您可以看到
build\u completion\u hash()
函数添加了如下名称 将SQL关键字、表名和字段名转换为哈希(快速高效的形式 指数据结构),用于提供完成。然而,该文件只是添加了以下内容

大多数SQL命令都以大写字母列出,但也有一些例外情况,如
创建数据库
创建表
显示数据库
中的显示字段以小写字母列出。由于生成的列表中的SQL关键字都是大写的,所以当SQL关键字以小写键入时,补全不起作用

此列表用于包含SQL命令的简短列表(小写),例如,
select
drop
insert
。然而,在中,这个短列表被MySQL支持的SQL命令的生成列表所取代

注意:我链接到MySQL的MariaDB fork的源代码,因为它更易于通过web访问。MariaDB是一个二进制兼容的分支,来自MySQL代码库,现在由Oracle拥有(该项目由MySQL AB背后的相同人员运行)。通过查看版本控制历史记录,我提到的客户端代码部分在过去几年中没有发生太大变化


TLDR:答案似乎是否定的。

<2008年1月是一个活着的好时机。