javascript - 更改对象存储的主键值

标签 javascript indexeddb

如何更改对象存储的主键值 (keyPath)?如果这不可能,IndexedDB 团队是否有计划支持此功能?

最佳答案

您不能修改对象存储(或索引)的键路径。这样做需要将所有数据重新插入到存储中,这可能会失败(例如,如果存在约束失败),因此作为升级(版本更改)的一部分,留给用户代码来执行此操作。

Indexed DB v2(至少在 Firefox 和 Chrome 中即将支持)允许您在模式更改期间重命名存储(和索引),因此您可以进行版本升级以创建新存储、复制数据、响应为了适本地约束失败,删除旧存储,然后重命名新存储。不过,在“v2”支持得到广泛支持之前,您必须坚持使用新名称。

关于javascript - 更改对象存储的主键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40340117/

相关文章:

javascript - 使用游标循环将 JS 对象添加到数组

indexeddb - 交易无效错误: Failed to execute 'add' on 'IDBObjectStore' : The transaction is not active

google-chrome-extension - Chrome 扩展程序是否可以访问由特定域创建的 IndexedDB 数据库?

javascript - 为什么我无法使用 Twilio 和 Parse 接收短信?

javascript - JQuery Ajax 获取自定义

javascript - 当用户尝试离开页面时创建确认弹出窗口

javascript - 哪些库可以在运行时记录 javascript 使用情况?

javascript - 如何/工具分析下面的json?

angular-cli - 带有 RxDB(idb 适配器)的 Angular 5 抛出未捕获的类型错误 : winningRev is not a function error when creating database

javascript - 更新/更改indexedDB中对象的键