【发布时间】:2015-02-03 22:04:31
【问题描述】:
使用 SQLite3 我得到了下表:
| Idx | Foo | Bar |
|-----|-------|---------|
| 1 | It's |something|
| 2 | and | even |
| 5 | more |wildcard |
Idx 是整数主键自动增量。
如您所见,Idx 3 和 4 未使用,因为它们已被删除。我可以让这些 Idx 再次可用吗?
我对 SQL 不是很坚定,但是我知道,毫无疑问,我需要自动增量来识别行,其他每一列都可能有双峰。
【问题讨论】:
-
缝隙有什么问题?不,不要弄乱自动增量列。
-
我正在编写一个可以运行 15 年甚至更长时间的 MCU 设备,所以我必须防止一切随着时间的推移而增加计算量。
-
有什么要计算的?它是一个整数值。机器不关心它有什么价值。
-
我在 200mhz 设备上编写 lua,SQLite 接口是一个内部 SDK,它不是很好。对于一些选择性查找,我已经从 1 迭代到最大值,因此将最大值保持在尽可能低的水平对我来说至关重要。我无法更改 SDK。我不想苛刻,我知道对于 SQL 来说这无关紧要,但对于我的软件来说它确实如此,我无法改变它。
-
很公平。但是你不能只是填补空白,你不应该尝试操纵自动增量机制。