Mysql – Lookup data while in thesql cli edit mode (external editor) (\e)

clientMySQLnative-client

I'm using the mysql cli in edit mode (\e).

> Select * from \e

Goes to vim and I finish typing my command.

Select * from test_table;

Only to realize I've forgotten to use the database I need. Is there a way I can preserve this script in edit mode, switch back to the regular mysql mode, run my command, and then come back to edit?

Another example would be: I forget how a column name is spelled and I need to look it up after I've started typing a command in edit mode.

Thanks!

Best Answer

Well, sort of.

In vim, save your work to a different file...

:w myfile.sql [enter]

Then exit vim with an artificial error so the mysql client won't bother to re-read the temporary file.

:cq [enter]

Then clear the input buffer in mysql.

\c [enter]

Then do what you've gotta do.

Then re-launch vim

\e [enter]

The editor will have your last command in it. Clear that out and then paste the temporary file back into the buffer.

:r myfile.sql [enter]

Keep editing, then save and exit and your new content will be returned to mysql for execution.