エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
きばらしぶろぐ SQLiteでdatabase is lockedが返る場合の対処法(その2)
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
きばらしぶろぐ SQLiteでdatabase is lockedが返る場合の対処法(その2)
いろいろ挙動探ってみたけどタイムアウト値に関わらず即座にdatabase is lockedが返るのはどうやらBEGIN... いろいろ挙動探ってみたけどタイムアウト値に関わらず即座にdatabase is lockedが返るのはどうやらBEGINコマンドの既定値であるDEFERREDのときだけっぽい というかBEGIN DEFERREDはINSERTとかUPDATEとかが実行されるまでロックは開始されないとか癖悪すぎるので絶対使いたくないww ちなみにタイムアウト値に関わらず即座にdatabase is lockedが返るパターンとして 1.プロセスAがトランザクション発行 2.プロセスBがトランザクション発行 3.プロセスBがINSERTなりUPDATEなりを発行(待たされる) 4.プロセスAがコミットする。ここでdatabase is locked とか。プロセスAが先にトランザクション開始してるのに何で?って感じwちなみにプロセスBの更新はエラーなしに完了します。 んで他にはBEGIN IMMEDIATEと