sqlite3

Page content

wrangler d1 create my-db

wrangler d1 execute my-app-db –command " CREATE TABLE users ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, email TEXT ); "

.exit が効かないときは、ほぼ原因が絞れます👇
順番にチェックすればすぐ解決できます。


🧠 よくある原因

① セミコロンを付けている(超多い)

.exit;   
.exit    

👉 .exit はSQLではなくメタコマンド
; を付けると無効になる


② SQL入力途中になっている

SELECT *
FROM users    ここで止まってる

👉 この状態だと .exit は効かない

対処

;    これで一度確定
.exit

③ sqlite3に入っていない

sqlite3 my.db

👉 この中でしか .exit は使えない


④ 別のシェルと勘違いしている

  • Node REPL

  • bash

  • PowerShell

👉 ここでは .exit は別の意味 or 無効


⑤ ターミナルの不具合・フリーズ

👉 入力を受け付けていない


🛠 解決方法(確実順)

🥇 まずこれ

;
.exit

🥈 キーボードで終了

Ctrl + D

👉 これが一番確実


🥉 強制終了

Ctrl + C

👉 それでもダメならターミナル閉じる


🔍 状態チェック

これが出ていればOK👇

sqlite>

これが出てたら未確定👇

...>

👉 ...> のときは .exit 効かない


🏆 結論

  • 一番多い原因 → ;付けてる or SQL途中

  • 最強解決 → Ctrl + D

  • 見分け → sqlite> or ...>


必要なら
👉「sqlite3でハマるポイントTOP10」
👉「D1とローカルSQLiteの違い」

かなり実務レベルでまとめます 👍