Cometí un error al escribir un comando en el símbolo del sistema SQLite, que ahora quiero abortar, así es como se ve mi línea de comando

sqlite> select * from todos" ...> " ...> ;^C 

En este caso, probablemente porque abrí una cita, no puedo ni siquiera presionar ENTER para ejecutar el comando. solo obtenga una continuación de línea, eso aún sería menos que ideal porque tendría que ejecutar un código incorrecto y la causa y el error, solo para recuperar el control del indicador.
¿Cómo puedo cancelar la línea / comando y volver a un mensaje?

Comentarios

  • Tal vez ^ D cierre stdin para sqlite y lo haga salir …
  • @Ralph ctrl D hace que sqlite salga de toda la sesión, incluida la pérdida de las bases de datos de la memoria, si es que está ejecutando alguna.

Respuesta

La interfaz sqlite3 utiliza la biblioteca ReadLine para la edición de la línea de comandos. Puede borrar una línea completa con h Ctrl + U pero una vez que ha presionado Enter , la línea ha sido aceptada y ya no es editable.

Como usted «ve notado , al enviar Ctrl + D se le pedirá al cliente que salga, que no es lo que desea.

Su mejor opción es

  1. cerrar cualquier cadena, y luego,
  2. antes de emitir un ; final, generar un error de sintaxis deliberado.

En su ejemplo:

sqlite> select * from todos" ...> " ...> *** I made a mistake ...> ; Error: near "*": syntax error sqlite> 

Esto asegurará que no se ejecute nada y lo dejará en la sesión de SQLite con las tablas temporales intactas.

Comentarios

  • gracias, sí, pensé que podría ser la mejor solución
  • Si ha presionado ingrese después de una tecla de flecha, es decir, tiene algo como > ^[[A y luego ...>, luego debe cerrar los corchetes para cancelar eso: > ]];. Realmente debería admitir Ctrl + C para esto. Es ' desagradable de esta manera.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *