gpt4 book ai didi

c++ - 如果在更改数据库时强行终止程序,SQLite 数据库真的会完好无损吗?

转载 作者:搜寻专家 更新时间:2023-10-30 20:07:13 25 4
gpt4 key购买 nike

SQLite 文档 says it is transactional .

链接文章中的解释指出,如果静态链接到 SQLite C++ 代码的 C++ 程序被强制终止(例如,WinAPI 中的 TerminateProcess())或在执行写入时崩溃,数据库将保持完整- 完全更新或完全不变。

有没有人真正看到它可靠地工作?这是无条件地起作用还是需要采取任何额外措施?

最佳答案

由于没有完全安全的方法来执行原子事务,所以总是有可能出现损坏的状态。

然而,SQLite 在提交时会特别小心,即使程序崩溃也应该保持数据库完好无损。它比使用平面文件和写入-截断-重命名循环更节省,后者是最近关于 ext4 的讨论中的问题。

参见 Atomic Commit以供引用如何完成。

关于c++ - 如果在更改数据库时强行终止程序,SQLite 数据库真的会完好无损吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/862828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com