home Glamenv-Septzen(ぐらめぬ・ぜぷつぇん)(archive)

日記/2007/12/20/mysqlコマンドプロンプト上でtable名の補完

作成日: 2007-12-20 22:21:39   /   last updated at: 2009-03-29 22:24:03
カテゴリ: MySQL 

my.cnfのmysqlセクションに、こんな設定値がありました。

no-auto-rehash

そもそも、mysqlコマンドでのターミナル上で、table名がtabで補完してくれないよね、というところで、どうもこの設定をコメントアウトするだけで自動補完が効くようです。
試しにコメントアウトしてみたところ、(mysqlセクションなのでデーモンの再起動は不要)確かに、tabキーでselectやdescなどでtable名が自動補完されるようになります。

・・・なんだろ、これ。ということで、どうもman mysqlすると見つかったようです。
no-auto-rehash自体は、"auto-rehash機能を無効化する"設定値で、で、auto-rehashってなんぞやというと。

Enable automatic rehashing.
This option is on by default, which enables table and column name completion.
Use --skip-auto-rehash to disable rehashing.
That causes mysql to start faster, but you must issue the rehash command 
 if you want to use table and column name completion.

だ、そうです。えーっと、つまり、auto-rehashやっておけば手動でrehashコマンドを叩かなくていいですよー、ということ。で、スピード重視であるならば --skip-auto-rehash をしてrehash自体を止めるのがオススメとのこと。ただし、その場合も、mysqlプロンプト上で手動でrehashコマンドを叩けば、table名の自動補完が有効になる。(正確には自動補完用のhashが再構築される)

で、ちなみに、rehashコマンドのショートカットが

\#

だそうです。

original url: https://www.glamenv-septzen.net/view/251