SQLite-是否可以使非整数主键工作?
感谢您的阅读,希望您能回答 由于遗留问题和公司政策,我正在使用SQLite 2.8.17,并且有一些VARCHAR作为主键 但当我运行“pragma integrity_check”时,它会在带有varchar主键的表上报告“索引中缺少rowid”和“索引中的条目错误”,但返回的结果是OK 扩展的恒定DB访问和使用(大约一天的负载测试)似乎会导致DB失败(完整性检查返回失败),唯一的解释(via.explain)是与前面相同的错误(“索引中缺少rowid”和“索引中的条目错误”) 有人能帮忙吗?我做错什么了吗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”和“索引中的条目错误”) 有人能帮忙吗?
谢谢。如果您抽真空数据库,那么至少应该重新构建它,而不会出现完整性检查失败。然后,如您所说,尝试一天的访问和使用,看看错误是否仍然存在 要清空数据库,请在命令行中输入数据库并键入:
vacuum代码>,或使用命令行:
sqlite2.exe mydb.db "vacuum;"
(虽然我似乎记得SQLite2在VACUUM
之后需要一个表名,所以您可能需要进行一些实验。尽管如此,它仍会影响所有表。)不,SQLite不需要表名。不提供任何参数将清空整个数据库。抽真空后没有变化,错误仍然存在。起初,检查仅说明“索引中缺少rowid”和“索引中的条目错误”,完整性检查仍然通过,过一段时间后,完整性检查将失败并报告DB病态。真空或其他完整性检查后,挂起我的系统。我不知道是否是由于varchar PK导致的“索引中缺少rowid”和“索引中的条目错误”错误导致的,但这是到目前为止唯一的线索。长度和隐私允许,你能发布模式吗?也许可以从那里收集到一些东西。