【发布时间】:2019-12-16 07:14:14
【问题描述】:
我在离线时使用 dexie.js 与用户本地系统上的 IndexedDB 表进行交互。当用户在线时,该表将同步回服务器 MariaDB 表。将数据推送到服务器后出现问题,可能是另一个用户推送了另一个具有相同 ID 值的值(用作主键)。因此,我将服务器 ID 值以 JSON 格式返回到本地系统,以更新 IndexedDB 值,但是当我尝试这样做时遇到问题,似乎无法更新 ID 值。
如果我仅将添加的值更新为空,则更新命令可以正常工作。
//SETTING UP THE INITAL TABLE
database.version(1).stores({
table: '++id,text,added'
});
//POPULATE TABLE WITH SOME DATA
database.on("populate", function() {
database.table.add({id: 1, text: "Test Value", added: 1});
});
//UPDATE DATA
database.table.update(1, {id: 4, added: ''}); // DOESN'T WORK
database.table.update(1, {added: ''}); // WORKS
是否只有删除当前记录并使用新值重新插入它的选项?这将是一个问题,需要对我的 API 进行大量重写,因此我试图避免这种情况。
【问题讨论】:
标签: javascript dexie