SQLiteコマンドプロンプトでコマンドの記述を間違えましたが、これを中止します。これがコマンドラインの外観です

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

この場合、おそらく見積もりを開いたため、ENTERを押してコマンドを実行することすらできません。I行の継続を取得するだけですが、プロンプトの制御を取り戻すために、不正なコードと原因とエラーを実行する必要があるため、それでも理想的とは言えません。
行/コマンドをキャンセルして、元に戻すにはどうすればよいですか。プロンプトに移動しますか?

コメント

  • たぶん^ Dはsqliteのstdinを閉じて終了します…
  • @Ralph ctrl Dを使用すると、sqliteはセッション全体を終了します。これには、メモリデータベース内のいずれかが失われることも含まれます。実行する場合は、

回答

sqlite3インターフェースはコマンドライン編集にReadLineライブラリを使用します。全行を消去できます。 h Ctrl + U ただし、 Enter を押すと、その行は受け入れられ、編集できなくなります。

通知 Ctrl + D を送信すると、クライアントに終了を求めるプロンプトが表示されますが、これは希望どおりではありません。

最善の策

  1. 任意の文字列を閉じてから、
  2. 最後の;を発行する前に、意図的な構文エラーを生成します。

例:

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

これにより、何も実行されなくなり、SQLiteセッションが終了します。一時テーブルはそのままです。

コメント

  • ありがとう、はい、それが最善の回避策かもしれないと思いました
  • を押した場合矢印キーの後に入力します。つまり、> ^[[Aのように入力してから...>のように入力し、ブラケットを閉じてキャンセルする必要があります。 > ]];。これには本当にCtrl + Cをサポートする必要があります。 'このように不快です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です