node.js - 使用带有 Sequelize 的原始批量更新查询

标签 node.js sequelize.js

我想将这种类型的请求与 sequelize 一起使用,以便在一个请求中进行大量更新(出于性能原因):

UPDATE employee
SET address = new.address,
name = new.name
from (values :updateStack) AS new(address, name, employeeId)
WHERE employee.id = new.employeeId

这是 updateStack 的值:

[{
    address: 'France',
    name: 'Chris',
    employeeId: 21
}, {
    address: 'UK',
    name: 'Steve',
    employeeId: 42
}]

我不确定 sequelize 如何正确解析 updateStack 数组。 有什么想法吗?

此 SQL 查询工作正常:

UPDATE employee
SET address = new.address,
name = new.name
from (values ('France', 'Chris', 21), ('UK', 'Steve', 42)) AS new(address, name, employeeId)
WHERE employee.id = new.employeeId

谢谢你,祝你有美好的一天。

最佳答案

我已经找到方法了!

sequelize.query(
            `
                UPDATE employee
                SET address = new.address,
                name = new.name
                from (values ?) AS new(address, name, employeeId)
                WHERE employee.id = new.employeeId
            `,
            {
                replacements: [['France', 'Chris', 21], ['UK', 'Steve', 42]],
                type: models.models.sequelize.QueryTypes.INSERT
            }
    )

关于node.js - 使用带有 Sequelize 的原始批量更新查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56804597/

相关文章:

javascript - 前端javascript文件放在哪里?

javascript - Sequelize - 如何比较日期之间的相等性

mysql - Sequelize Create 或 FindOrCreate 从不创建新记录,只更新以前的记录

node.js - SequelizeConnectionRefusedError/ECONNREFUSED 上的 Node 应用程序崩溃

javascript - Node JS API Sequelize PostgreSQL UUID 作为主键返回错误 "column Nan does not exist"

javascript - 如何在 sequelize 迁移中使用 insert()?

sequelize.js - 在 findAll 中包含多个模型关系

javascript - 尝试学习 tensorflow.js 但需要一个更简单的例子,比如 brain.js

javascript - 在异步函数内映射数组会导致错误

javascript - NextJS : How can I use a loading component instead of nprogress?