MYSQL:如何使用MYSQL命令行的自动补全功能

MYSQL:如何使用MYSQL命令行的自动补全功能,第1张

使用MYSQL -I命令,查看MYSQL命令的参数,其中对--auto-rehash参数的说明如下:--auto-rehash Enable automatic rehashing. One doesn&#39t need to use &#39rehash&#39to get table and field completion, but startup and reconnecting may take a longer time. Disable with --disable-auto-rehash. 网上也找了一些资料,说是打开MYSQL的自动全功能,类似于LINUX的TAB键补全功能。但如下使用该参数后,输入SQL命令,中途按TAB健,并未出现自动补全的效果,不知道如何 *** 作: [sql] C:\Users\qxlmysql -u root --auto-rehash Welcome to the MySQL monitor. Commands end with or \g. Your MySQL connection id is 29 Server version: 5.1.28-rc-community MySQL Community Server (GPL) Type &#39help&#39or &#39\h&#39for help. Type &#39\c&#39to clear the buffer. mysql use test Database changed mysql select * from newnam

在orderid顺序排列或者有顺序列的情况下,可以使用自连接对比循环来依次补全:

declare @i int

declare @j int

set @i = 1

select @j = ( select count(*) as cont from tb )

while @i <= @j

begin

update a set a.proid=b.proid from tb a inner join tb b on a.orderid = b.orderid + 1 where a.orderid = @i and a.proid is null

set @i = @i + 1

end

默认不是开启的。若要开启此功能,可以在Linux中

vi /etc/my.cnf

[mysql]

#no-auto-rehash

auto-rehash #添加auto-rehash

即将[mysql]中的no-auto-rehash改为auto-rehash

再次登陆MySQL就可以自动补全了。

如果你想尝试在Windows中做同样尝试,会发现不会成功。

原因在下面的英文中有解释:

It ought to work this way:

C:\>mysql --auto-rehash

Or configure your my.cnf:

[mysql]

auto-rehash

edit: My apologies. I have found some references that the tab-completion feature in mysql client works only on UNIX/Linux. It does not work on Windows.

update: The reason for this is mentioned briefly in MySQL bug #4731:

[31 Jul 2004 12:47] Sergei Golubchik

I just downloaded 4.0.15 - command completion in mysql.exe is NOT working, as expected. It was never working in mysql.exe because we were not able to make readline to compile with VC++.

mysqlc.exe is a cygwin build, and it is linked with readline.

Explanation: GNU readline is a standard open-source library for handling user input. The MySQL team uses the readline library, but they are not its author. From the above comment, I understand that they were unsuccessful in compiling the readline library on Windows with Microsoft Visual C++, the tool they use to build the MySQL product. Some open-source projects have not been made fully compatible with the Microsoft Windows environment.

At one time in the past, the MySQL product provided an alternative client they called mysqlc.exe, which they compiled with the cygwin toolset on Windows, but they don't provide this anymore. The cygwin toolset includes the readline library, so it was possible to compile the mysqlc.exe client with support for tab-completion.

So in theory, if you are really intrepid, you could download the cygwin toolset including the readline library, then download the MySQL source code and build it using cygwin. Then you should have a mysql client program that can perform tab-completion. But this sounds like a lot of work even for someone who is familiar with building MySQL from source.

这是MySQL Windows版本的一个Bug :-)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9942258.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存