Save time use MySQL auto completion for database or table names

There is a quick way to type both MySQL database and table names quickly by enabling MySQL auto completion feature. This is called automatic rehashing. This option is on by default, which enables table and column name completion.

First connect to mysql database called foo:

$ mysql -u vivek -p foo
Now let us say you would like to list all records from tables wp_users. Type select * from w and press tab key to complete table name:
mysql> select * from w {Press TAB KEY}

Please note that if the partial name is unique, mysql will completes it for you. Otherwise, you can hit tab key again to see all possible matches.

Auto-completion enables you to cut down typing time and great way to speed up your work :)

If you don't use this feature, disable this feature by passing -A or --skip-auto-rehash option to mysql. That causes mysql to start faster.
$ mysql -A -u vivek -p foo

Want to read Linux tips and tricks, but don't have time to check our blog everyday? Subscribe to our daily email newsletter to make sure you don't miss a single tip/tricks. Subscribe to our weekly newsletter here!

{ 4 comments… read them below or add one }

1 Sheeri 11.26.06 at 5:38 pm

Great tip! You do have to have done a “use database” at least once before in your session, because that’s when it loads all that information in. Also, does that trick work on Unix only or on Windows too? (Mac OS X = Unix)

2 nixcraft 11.26.06 at 5:49 pm

Hmm..

mysql -u vivek -p foo

foo is database name; so no need to use database name again (foo is not my password) :). Otherwise execute use database as suggested by you.

I have not tested this on Microsoft Windows. But it should work as this is mysql client feature.

Appreciate your post.

3 mysqlonWindows 06.20.07 at 4:42 am

This doesn’t appear to work on Windows with cmd.exe. Does anyone know if it’s possible to get mysql tab-completion working with cmd.exe? If it is, then any additional guidance on how to get it set up would be great.

4 Paolo 06.25.08 at 12:00 pm

can be possible autocomplete sql command?!
for example: select, from, having and so way?
thanks a lot
bye

Leave a Comment

You can use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Previous post: 6 Good security practices every Linux admin must follow

Next post: How to remove unwanted mails from UNIX mailboxes or folders