這可能是一個初學者問題,但是當測試我的sqlite數據庫時,我發現當我刪除一行時,行ID在插入新行時不斷增加,並且不會重複使用已刪除行的行ID。那麼,如果行標識達到最大值,而表中的行數更少,會發生什麼?當記錄從表中刪除後,最大行數會減少,因爲行ID不斷增加
2
A
回答
3
這是documented:
如果表曾擔任一排的最大可能的ROWID,那麼新的刀片是不允許的,任何企圖插入新行會失敗,並SQLITE_FULL錯誤。
如果省略AUTOINCREMENT
關鍵字,ID將仍然自動遞增,但可以重複使用,如果你刪除了最後一排,或者如果值溢出:
如果最大ROWID等於最大可能整數(9223372036854775807),那麼數據庫引擎將隨機選擇正候選ROWID,直到找到一個先前未使用的ROWID。
0
當您將行號添加爲自動增量時,您必須檢查最大值。如果數據行達到該限制,則必須使用更大的數據類型。但通常整數不會交叉,因爲數據庫設計人員必須密切關注normalization。
如果數據行給出這麼大。你真的堅持查詢。這將需要很長時間。 SQLite
主要用於低端設備。他們無法處理大數據。
相關問題
- 1. 刪除記錄不會減少數據庫大小 - MyISAM
- 2. 在刪除JSON數組後減少ID
- 3. 在postgres中刪除行時不會減少串行pk?
- 4. 當我增加最大堆大小時,爲什麼最大線程數會減少?
- 5. 爲什麼行數增加但最大id不變?
- 6. 從所有表中刪除記錄ID
- 7. 由於表格尺寸不斷增大而刪除'orbeon_form_data_attach'中的記錄
- 8. Mysql ID自動增量不爲null當行刪除篩選
- 9. Re在刪除Sql表中的記錄後增加主列?
- 10. 從db中刪除文章減少/增加命令php
- 11. ios增加/減少表格大小
- 12. 從另一個表中刪除記錄是因爲缺少另一個表中的記錄
- 13. 刪除列不會減少數據庫大小
- 14. 減少但不增加背景大小
- 15. Gwt celltable:意外的行爲:當記錄從頁面中刪除,然後在頁
- 16. 如何刪除mysql中的重複記錄? (減查詢執行時間大表)
- 17. 增加/減少大量整數
- 18. 動態增加/減少數組大小
- 19. 如何從德比表中的表中刪除一行ID列增加1?
- 20. 當數據庫表增長過大時,自動刪除最舊的行?
- 21. 如何刪除活動記錄中已刪除行的ID
- 22. 對首先增加然後減少的數組進行排序
- 23. 目錄大小不減少,刪除目錄的Android
- 24. 從表中刪除行後,動態ID不起作用
- 25. 從記錄中刪除換行符
- 26. Mysql刪除記錄後遞減其他ID的
- 27. 當我從我的數據庫刪除行主鍵增加
- 28. 當記錄集上的循環繼續運行而記錄總數減少時
- 29. 爲什麼在Ruby中進行分割後,負數會減少?
- 30. 如何進行需要刪除最少1條記錄的刪除確認?
http://www.sqlite.org/autoinc.html –
我不認爲這會發生在我死之前,但理論上我可以用完,在表中只有一行:-)。好吧,我不需要擔心,謝謝.. –