0

Sqlite データベースを使用して情報を保存するマルチ スレッド アプリケーションを作成しています。

スレッドの 1 つは、次のように、特定の列が空白の行を選択する SELECT 操作を実行します。

for i in cursor.execute('SELECT Beeid from SongLink WHERE Dlink=\'\''):

他のスレッドもデータベースにアクセスし、列のDlink 値を変更しようとします。

上記のコードは、他のスレッドによって行われた更新を処理してDlink=\'\'' の列を常に提供しますか、それとも間違った行選択につながる可能性があります

4

1 に答える 1

1

スレッドごとに個別の接続を使用すると、SQLite はデータの整合性を維持します。

ある接続でのデータベースへの変更は、a) 変更をコミットし、b) その新しいデータを表示したい接続で新しいトランザクションが開始されるまで、他のスレッドでは表示されません。

check_same_thread接続のパラメータをに設定しますTrue

于 2013-03-07T16:05:18.547 に答える