我正在尝试使用对象和子对象创建数据库文件.例如,
第一个表是用于存储变化的罐子.每个jar条目都有一个自动增量主ID键和有关jar的数据,如高度,直径等等.
第二张表将包含硬币.每个硬币都有一个ID(需要?),还有它所包含的罐子的ID和它的数据(如价值,年份等).
我的问题是当一个被删除时自动增量键会发生什么?说你有4个罐子:
1 2 3 4
你删除了2号.剩下的罐子会重新编号为123吗?还是会有差距?如果有间隙,是否填充,以便创建的下一个jar的ID为2?或者下一个仍然是5?
谢谢
您可以在sqlite AUTOINCREMENT文档中阅读:
通常的算法是为新创建的行提供一个ROWID,该ROWID比插入前表中的最大ROWID大一个.如果表最初为空,则使用ROWID为1.如果最大的ROWID等于最大可能的整数(9223372036854775807),则数据库引擎随机开始随机选择正候选ROWID,直到找到之前未使用过的ROWID.如果在合理的尝试次数后找不到未使用的ROWID,则插入操作将失败,并显示SQLITE_FULL错误.
简而言之,插入4行后,删除第二行,然后在末尾插入另一行,ids将是:
1 3 4 5
| 归档时间: |
|
| 查看次数: |
2130 次 |
| 最近记录: |