Mysql
 sql >> Database >  >> RDS >> Mysql

Incollare SQL nella riga di comando di MySQL

Questa è l'impostazione predefinita mysql (CLI) comportamento ogni volta che l'utente preme il Tab chiave (mysql utilizza la readline sottostante o EditLine librerie (non su Windows)).

Per impostazione predefinita, quando l'utente richiede di use un database, mysql legge le tabelle e le definizioni dei campi. Quindi, premendo la scheda la chiave rende mysql offre convenientemente il completamento dell'input corrente con le tabelle e i campi noti.

Tuttavia, incollando del testo in mysql che contiene caratteri TAB (\t o 0x09 ) attiva lo stesso comportamento, anche se nessuna Tab il tasto è stato effettivamente premuto dalla tastiera. E questo può essere fastidioso.

Due opzioni date a mysql può impedire quel comportamento, però. Il mio preferito è --disable-auto-rehash . L'altro è --quiet o -q .

  • --disable-auto-rehash per impedire il completamento del nome di database, tabelle e colonne (che non vengono letti dal database, utilizzare il rehash comando se in seguito è necessario il completamento). Tuttavia, la cronologia dei comandi viene conservata (recuperata tramite il e chiavi per esempio). Il che è conveniente.

  • --quick o -q che rende mysql non utilizzando la cronologia file e nessun completamento (non legge le definizioni del database).

Su Linux si può aggiungere un alias in .bashrc per usare --disable-auto-rehash automaticamente

alias mysql2='mysql --disable-auto-rehash'