我们怎么知道sqlite DB的锁状态?

时间:2011-01-07 19:04:55

标签: sqlite locking

1)是否有编译指示或任何方式来了解sqlite db的当前lock state。 2)另外,有没有办法知道是否有其他进程正在使用数据库?

2 个答案:

答案 0 :(得分:3)

关于#1:不,因为你得到的答案会立即过时(即如果你得到“没有数据库没有被锁定”的答案,那么其他人可以出现并立即锁定它,留下你的不好的信息)。

正确的方法是简单地尝试您的操作(可选择使用超时)并查看是否成功。

答案 1 :(得分:2)

没有编译指示,但是FAQ状态:

  

当SQLite尝试访问被另一个进程锁定的文件时,默认行为是返回SQLITE_BUSY。

但是,这只意味着数据库被锁定以进行写入而不是读取。