私は3つのプログラムを実行していますが、そのうちの1つはSELECT
ステートメントを使用してデータベースからテーブルを繰り返して繰り返します。データベースアクセスのロックとロック解除 - データベースがロックされています
他のプログラムには、テーブルに行を挿入する行と削除する行があります。問題は、しばしばエラーsqlite3.OperationalError: database is locked
が発生することです。
私は解決策を見つけようとしていますが、問題の正確な原因を理解していません(このエラーが発生するのと同時に読み取りと書き込みが行われているか、書き込みと削除がどちらですか?働くことになっている)。
いずれにしても、解決策を探しています。 1つのプログラムであれば、データベースI/Oとmutexやその他のマルチスレッドツールをマッチさせることができますが、そうではありません。あまりにも多くのCPUを使用せずにデータベースの読み取り/書き込み/削除のロックが解除されるまでどのように待つことができますか?あなたは、データベースを切り替える必要があり
どれがエラーを起こしていますか?ところで、削除も書いています。 –
これはなぜSQLiteを使用していますか?同時に複数のものに同時にアクセスするようには設計されていません。 – jonrsharpe
@jonrsharpe私のシステムはSQLite上に構築されましたが、今私はそれが私が必要なのか分からなかったこの機能を持つためにそれを更新する必要があります。プロジェクトのこの段階では、MySQLのようなものへの移行は分かりません。 – Jonathan