sqlite3:安全的多任务读取&写 - 怎么样?

时间:2012-08-20 23:51:03

标签: python concurrency sqlite

我有两个程序:第一个只写入sqlite db,第二个只读。我可以肯定永远不会有一些错误吗?或者如何避免它(在python中)?

2 个答案:

答案 0 :(得分:3)

是的,通常是安全的。

According to the SQLite FAQ

  

多个进程可以同时打开同一个数据库。多个进程可以同时执行SELECT。但是,只有一个进程可以随时对数据库进行更改。

由于只有一个进程正在编写,因此没问题。

例外:如果您的.sqlite文件存储在网络驱动器(Windows或NFS)上,则可能会中断。

答案 1 :(得分:1)

通常,如果只有一个程序一次编写sqlite db,则是安全的。 (如果没有,它会引发异常,例如“数据库被锁定。”而两个写操作想要同时写入。)

顺便说一句,没有办法保证程序永远不会有错误。使用Try ... catch来处理异常会使程序更加安全。