簡體   English   中英

SQLite - 是否可以使非整數主鍵工作?

[英]SQLite - Is it possible to make a non-integer Primary Key work?

感謝閱讀並希望回答,

由於遺留問題和公司政策,我正在使用SQLite 2.8.17並且有一些varchars作為主鍵。

但是當我運行“pragma integrity_check”時 ,它會使用varchar主鍵報告“index中缺少rowid”“index中的條目錯誤數” ,但返回的結果是OK。

擴展常數DB訪問和使用(大約一天的負載測試)似乎導致數據庫失敗( 完整性檢查返回FAIL),唯一的解釋(通過.explain )是與之前相同的錯誤( “rowid從索引中丟失”“索引中錯誤的條目數” )。

有人可以幫忙嗎? 我有什么不對勁嗎?

謝謝。

如果您對數據庫進行抽真空,那么至少應該重新構建它,而不會出現此完整性檢查失敗。 然后,按照您的說法嘗試一天訪問和使用,並查看錯誤是否仍然存在。

要清空數據庫,請在命令行中輸入數據庫並鍵入: VACUUM; ,或使用命令行:

sqlite2.exe mydb.db "vacuum;"

(雖然我似乎記得SQLite2在VACUUM之后需要一個表名,所以你可能需要稍微試驗一下。它會影響所有表。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM