我正在创建一个使用 Sqlite 数据库来存储信息的多线程应用程序。
其中一个线程执行 SELECT 操作,它选择特定列为空白的行,如下所示:
for i in cursor.execute('SELECT Beeid from SongLink WHERE Dlink=\'\''):
另一个线程也访问数据库并尝试更改列的Dlink 值。
上面的代码是否总是给出Dlink=\'\''的列来处理另一个线程所做的更新,否则这可能会导致错误的行选择
每个线程使用单独的连接,SQLite 将保持数据完整性。
在一个连接中对数据库的更改不会在其他线程中可见,直到您 a) 提交更改并且 b) 在想要查看该新数据的连接中启动新事务。
您确实想将check_same_thread
连接的参数设置为True
.