StackShelf
SQLエラー エラー解決

SQLITE_BUSY: database is locked の原因と解決法

SQLITE_BUSY: database is locked の原因と具体的な解決手順をまとめました。

1分で読める
sqlSQLエラーSQLITE_BUSYSQLiteSQLITE_BUSY: database is locked

エラーメッセージ(全文)

SQLITE_BUSY: database is locked

このエラーとは

SQLITE_BUSY: database is locked は SQL 開発でよく遭遇するエラーです。

想定環境: Windows / macOS / Linux

よく出る状況: SQLite 実行時

よくある原因

  • DB ファイルパス誤り
  • 同時書き込み
  • マイグレーション漏れ

解決方法

方法1: WAL モード

PRAGMA journal_mode=WAL; を検討.

それでも直らないとき

バージョン情報(SQL のバージョン、OS、実行コマンド)を添えて、エラーメッセージ全文と直前に変更した点を確認してください。ログの数行上にも原因の手がかりが残っていることが多いです。

まとめ

「SQLITE_BUSY: database is locked」は DB ファイルパス誤り が原因のことが多いです。上記の手順で切り分けてください。

次にやること

同じ SQL カテゴリの関連エラーもあわせて確認してください。

よくある質問

SQLITE_BUSY: database is locked とは何ですか?

SQLITE_BUSY: database is locked は SQL 実行時に表示されるエラーです。DB ファイルパス誤り

SQLITE_BUSY: database is locked の原因は?

DB ファイルパス誤り。同時書き込み。マイグレーション漏れ。

SQLITE_BUSY: database is locked の直し方は?

WAL モード:PRAGMA journal_mode=WAL; を検討.

SQL で SQLITE_BUSY が出るのはなぜ?

SQLite 実行時

SQLITE_BUSY: database is locked を防ぐには?

次に読むべき記事

同カテゴリ「SQLエラー」の記事

学習ルート

体系的に学びたい方はこちらから。

エラー・トラブル集で続きを探す →

あわせて読みたい