Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLite-是否可以使非整数主键工作?_Sqlite_Primary Key_Varchar_Sqlite2 - Fatal编程技术网

SQLite-是否可以使非整数主键工作?

SQLite-是否可以使非整数主键工作?,sqlite,primary-key,varchar,sqlite2,Sqlite,Primary Key,Varchar,Sqlite2,感谢您的阅读,希望您能回答 由于遗留问题和公司政策,我正在使用SQLite 2.8.17,并且有一些VARCHAR作为主键 但当我运行“pragma integrity_check”时,它会在带有varchar主键的表上报告“索引中缺少rowid”和“索引中的条目错误”,但返回的结果是OK 扩展的恒定DB访问和使用(大约一天的负载测试)似乎会导致DB失败(完整性检查返回失败),唯一的解释(via.explain)是与前面相同的错误(“索引中缺少rowid”和“索引中的条目错误”) 有人能帮忙吗?

感谢您的阅读,希望您能回答

由于遗留问题和公司政策,我正在使用SQLite 2.8.17,并且有一些VARCHAR作为主键

但当我运行“pragma integrity_check”时,它会在带有varchar主键的表上报告“索引中缺少rowid”“索引中的条目错误”,但返回的结果是OK

扩展的恒定DB访问和使用(大约一天的负载测试)似乎会导致DB失败(完整性检查返回失败),唯一的解释(via.explain)是与前面相同的错误(“索引中缺少rowid”“索引中的条目错误”

有人能帮忙吗?我做错什么了吗


谢谢。

如果您抽真空数据库,那么至少应该重新构建它,而不会出现完整性检查失败。然后,如您所说,尝试一天的访问和使用,看看错误是否仍然存在

要清空数据库,请在命令行中输入数据库并键入:
vacuum,或使用命令行:

sqlite2.exe mydb.db "vacuum;"

(虽然我似乎记得SQLite2在
VACUUM
之后需要一个表名,所以您可能需要进行一些实验。尽管如此,它仍会影响所有表。)

不,SQLite不需要表名。不提供任何参数将清空整个数据库。抽真空后没有变化,错误仍然存在。起初,检查仅说明“索引中缺少rowid”和“索引中的条目错误”,完整性检查仍然通过,过一段时间后,完整性检查将失败并报告DB病态。真空或其他完整性检查后,挂起我的系统。我不知道是否是由于varchar PK导致的“索引中缺少rowid”和“索引中的条目错误”错误导致的,但这是到目前为止唯一的线索。长度和隐私允许,你能发布模式吗?也许可以从那里收集到一些东西。