Udělal jsem chybu při psaní příkazu na příkazovém řádku SQLite, který nyní chci přerušit, takhle vypadá můj příkazový řádek
sqlite> select * from todos" ...> " ...> ;^C
V tomto případě, pravděpodobně proto, že jsem otevřel nabídku, nemohu spustit příkaz ENTER
. I stačí získat pokračování řádku, což by bylo stále méně než ideální, protože bych musel spustit špatný kód a příčinu a chybu, abych znovu získal kontrolu nad výzvou.
Jak mohu zrušit řádek / příkaz a vrátit se zpět na výzvu?
Komentáře
Odpověď
Rozhraní sqlite3
používá pro úpravy příkazové řádky knihovnu ReadLine. Celý řádek můžete vymazat h Ctrl + U , ale jakmile stisknete Enter , řádek byl přijat a již jej nelze upravovat.
Jak jste všimli , odeslání Ctrl + D vyzve klienta k ukončení, což není to, co chcete.
Vaše nejlepší sázka je
- zavřít libovolný řetězec a poté
- před vydáním konečného
;
vygenerovat záměrnou chybu syntaxe.
Ve vašem příkladu:
sqlite> select * from todos" ...> " ...> *** I made a mistake ...> ; Error: near "*": syntax error sqlite>
Tím zajistíte, že se nic nespustí, a ponechá vás v relaci SQLite s neporušenými dočasnými tabulkami.
Komentáře
- děkuji, ano, myslel jsem si, že by to mohlo být nejlepší řešení
- Pokud jste stiskli zadejte za klávesou se šipkou, tj. máte něco jako
> ^[[A
a poté...>
, pak musíte závorky zavřít, abyste to zrušili:> ]];
. Opravdu by to mělo podporovat Ctrl + C. Takto je to ' nepříjemné.
sqlite
a ukončí jej …