mysql - 带添加的环回更新

标签 mysql orm loopbackjs

我正在尝试使用环回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/

相关文章:

mysql - 下面的示例如何写总和和计数?

php - 刷新页面时空帖子 [双重提交] (PHP/MYSQL)

javascript - 如何使用自定义查询方法延长水线?

java - POM 丢失,没有可用的依赖信息,未找到 cfg.xml

mysql - 如何对表中的所有列执行 REGEXP?

mysql - 如何编写以下 mySQL 查询?

php - ORM Doctrine ManyToOne 更新 CASCADE (Symfony)

node.js - 出错时执行代码

javascript - 环回 IO OAuth 不起作用

facebook - 将自定义 Loopback 用户模型与 loopback-component-passport 结合使用