标签: sqlite locking
1)是否有编译指示或任何方式来了解sqlite db的当前lock state。 2)另外,有没有办法知道是否有其他进程正在使用数据库?
答案 0 :(得分:3)
关于#1:不,因为你得到的答案会立即过时(即如果你得到“没有数据库没有被锁定”的答案,那么其他人可以出现并立即锁定它,留下你的不好的信息)。
正确的方法是简单地尝试您的操作(可选择使用超时)并查看是否成功。
答案 1 :(得分:2)
没有编译指示,但是FAQ状态:
当SQLite尝试访问被另一个进程锁定的文件时,默认行为是返回SQLITE_BUSY。
但是,这只意味着数据库被锁定以进行写入而不是读取。