我正在尝试使用环回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:密钥的重复条目“ 22323”
'all_inventory_SkuRegalFach_uindex'
因为环回似乎无法正确处理密钥。
而且我不知道如何告诉回送将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);
});
有办法用回送的ORM做到这一点吗?
最佳答案
我会使用查找过滤器。 findById或使用适当的过滤器查找。
如果得到结果,则该结果存在。您可以修改数量,然后将其存储。如果不存在,则只需创建它。