Ho commesso un errore durante la scrittura di un comando al prompt dei comandi di SQLite, che ora voglio interrompere, ecco come appare la mia riga di comando
sqlite> select * from todos" ...> " ...> ;^C
In questo caso, probabilmente perché ho aperto una citazione, non posso “nemmeno premere ENTER
per eseguire il comando. basta ottenere una continuazione della riga, che sarebbe comunque tuttaltro che ideale perché dovrei eseguire codice errato e causa ed errore, solo per riprendere il controllo del prompt.
Come posso annullare la riga / comando e tornare indietro a un prompt?
Commenti
Risposta
Linterfaccia sqlite3
utilizza la libreria ReadLine per la modifica della riga di comando. Puoi cancellare unintera riga con h Ctrl + U ma una volta premuto Invio , la riga è stata accettata e non è più modificabile.
Dato che hai notato , linvio di Ctrl + D richiederà al client di uscire, che non è quello che desideri.
La soluzione migliore è
- chiudere qualsiasi stringa e quindi,
- prima di emettere un
;
finale, generare un errore di sintassi intenzionale.
Nel tuo esempio:
sqlite> select * from todos" ...> " ...> *** I made a mistake ...> ; Error: near "*": syntax error sqlite>
Questo assicurerà che nulla venga eseguito e ti lascerà nella sessione SQLite con qualsiasi tabella temporanea intatta.
Commenti
- grazie, sì, ho pensato che potrebbe essere la soluzione migliore
- Se hai premuto inserisci dopo un tasto freccia, cioè hai qualcosa come
> ^[[A
e poi...>
, quindi devi chiudere le parentesi per annullarlo:> ]];
. Dovrebbe davvero supportare Ctrl + C per questo. ' è odioso in questo modo.
sqlite
e lo farà uscire …