gpt4 book ai didi

c - 我应该如何在 C 中使用 Sqlite "PRAGMA integrity_check"

转载 作者:行者123 更新时间:2023-12-03 16:59:27 25 4
gpt4 key购买 nike

我损坏了数据库。在命令行中我输入

PRAGMA integrity_check

和sqlite返回
On tree page 441 cell 17: Rowid 205 out of order (min less than parent max of 12258)
On tree page 26 cell 12: 2nd reference to page 441
On tree page 26 cell 12: Child page depth differs
On tree page 26 cell 13: Child page depth differs
Page 65 is never used
Page 66 is never used
wrong # of entries in index sqlite_autoindex_TBL_1

在我的 c 程序中,我输入
sqlite3 *glbDBHandle;
sqlite3_open(DB_FILE, &glbDBHandle);
int result=sqlite3_exec(glbDBHandle, "PRAGMA integrity_check", 0, 0, 0);

此代码始终返回 0 损坏和健康的数据库。

我应该如何在 C 中使用“PRAGMA完整性检查”?或者我怎么知道我的 sqlite 数据库坏了?

最佳答案

PRAGMA integrity_check行为类似于在单行中返回结果的 SELECT 查询。
使用 sqlite3_exec 读取结果,你需要使用回调。

请注意 PRAGMA integrity_check不能保证找到所有错误,因此您只能使用它来检查损坏的数据库,而不是检查健康的数据库。

关于c - 我应该如何在 C 中使用 Sqlite "PRAGMA integrity_check",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22172186/

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