0

我在 Linux 中使用 sqlite3,但我目前遇到了问题。我有一个数据库和 2 个表:db1 和 db2。db1 有 3 列:empID、empName、empAddr。db2 只有 1 列:empID,其值默认设置为 0。

我创建了一个 C 程序,它不断地轮询第二个数据库 db2 以了解 empID 值的任何变化。根据 db2 中 empID 的新值,程序从 db1 中获取相应的信息。例如,如果 db2 中 empID 的值更改为 1,则程序会从 db1 中查找与等于 1 的 empID 对应的信息(empName 和 empAddr)。但是当我运行 2 个终端时:1 用于手动更改值db2 中的empID 和另一个1 用于运行C 程序,我遇到了锁定数据库的问题。当程序运行并访问数据库时,我想更改 db2 中 empID 的值,但我知道由于我的 C 程序正在访问它,我无法更新 empID 的值(除非我关闭运行程序的终端)。所以我的问题是,当我通过程序访问 db2 时,有没有办法更新/更改 db2 中 empID 的值?答案将不胜感激。谢谢你。

4

1 回答 1

0

sqlite 有一个单一的锁定机制——锁定整个 .sq3 文件!

您可以在 hte“选择”程序sqlite 文档中设置未提交读取的编译指示

然而,使用数据库发送消息就像使用谷仓发送信件一样。

于 2010-11-29T04:53:52.667 回答