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の違い」
かなり実務レベルでまとめます 👍