我正在尝试使用环回upsert
数据库表。原始查询是
insert into all_inventory (sku, qty, regal, fach, skuRegalFach)
values (?, 1, ?, ?, ?)
on duplicate key update
qty = qty + 1,
regal = values(regal),
fach = values(fach)
有什么方法可以用环回来做到这一点吗?
目前我面临两个问题。
我得到:
ER_DUP_ENTRY: Duplicate entry '22323' for key 'all_inventory_SkuRegalFach_uindex'
因为loopback好像不能正确处理key。
而且我不知道如何告诉 loopback 将 1 添加到 qty 字段而不是用新值覆盖它。
我现在使用原始查询,
let ds = Inventory.dataSource,
values = [sku, regal, fach, sku + regal + fach],
sql = `insert into all_inventory (sku, qty, regal, fach, skuRegalFach) values (?, 1, ?, ?, ?) on duplicate key update qty = qty + 1, regal = values(regal), fach = values(fach)`
ds.connector.query(sql, values, (err, products) => {
if (err) return console.error(err);
cb(null, products);
});
有没有办法用 loopback 的 ORM 来做到这一点?
最佳答案
我会使用查找过滤器。 findById 或使用适当的过滤器查找。
如果你得到一个结果,那么它就存在。您可以修改数量然后存储它。如果它不存在,那么你就创建它。
关于mysql - 带添加的环回更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35742466/