【发布时间】:2017-04-10 17:26:37
【问题描述】:
我有一个带有 keyPath 和 autoincrement=true 的商店。 我有 100 个项目,我删除了第 50 个。 我无法插入新的 50 年代...... 结果总是相同的:100 个项目,其中 50 个项目占据了 keypath 101.... 有没有办法插入那个“50”项? 谢谢
【问题讨论】:
标签: indexeddb
我有一个带有 keyPath 和 autoincrement=true 的商店。 我有 100 个项目,我删除了第 50 个。 我无法插入新的 50 年代...... 结果总是相同的:100 个项目,其中 50 个项目占据了 keypath 101.... 有没有办法插入那个“50”项? 谢谢
【问题讨论】:
标签: indexeddb
不是自动的。新记录的关键总是增加。您必须手动跟踪哪些键被删除并手动设置新记录的键。请参阅the spec 了解令人痛苦的细节,但这一点是相关的:
这样做的一个实际结果是,为对象存储生成的第一个键始终为 1(除非首先插入更高的数字键)并且为对象存储生成的键始终是高于最高数字键的正整数在商店。除非事务回滚,否则不会为同一个对象存储生成两次相同的密钥。
【讨论】: