0

我正在创建一个使用 Sqlite 数据库来存储信息的多线程应用程序。

其中一个线程执行 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 回答