mysqlコマンドで、テーブル名とかカラム名の補完(completion)をする方法

追記: rehash(auto-rehashも含む)すると、SQL文の補完(seleでタブ打鍵とか)が効かなくなるよと、はす向かいの人に教えてもらいました。
個人的には、SQLは「mysql> help select」とかでオンラインヘルプがびょっと出るので、スキーマの補完ができるんならSQLの補完はとりあえずあきらめてもいいかなと思っています。




常々、テーブル名とか補完できるといいなーと思っていたので、ボロっときいてみたら教えてもらいました。あざーーーーっす! id:mikihoshi++ id:tokuhirom++ id:precuredaisuki++
おかげで効率が300%上がりました。(Benchmark::Stopwatchで計測)



  • mysqlコマンドを--auto-rehashオプションをつけて起動する
$ mysql --auto-rehash
  • my.cnfの[mysql]セクションにauto-rehashと書いておく
$ cat ~/.my.cnf
[mysql]
prompt="\u@\h[\d]> "
auto-rehash
#show-warnings
  • 対話的なmysqlで、rehashコマンドを実行する
    • これは「auto」じゃないので、use XXXでDBを移動したら、補完候補テーブルをrehashする必要がある
mysql> rehash