node.js - 将原始批量更新查询与 Sequelize 一起使用
问题描述
我想将这种类型的请求与 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
}
)
推荐阅读
- swift - 强、弱引用 + 镜像:导致泄漏
- reactjs - react-helmet Meteor 服务器端渲染
- json - 如何在 JoltTransformation 中输出原始 json 以及转换后的 json
- python - 从 GCS 到 BQ 获取海量 csv 文件
- php - 当我尝试在 symfony 4 中对我的密码进行哈希处理时,我得到了什么错误
- go - 在circle ci中使用go mod获取私人回购
- python - Autospec 模拟没有正确保留签名?
- java - 修改有效的 AWS 联合用户策略/联合令牌 (AWSJavaSDK)
- sql - 在 SAS 中将表从 SQL Server 复制到 Oracle - SQL Server 中的列名太长
- ios - 在 iOS 中,在纯 C 中,这是获取本地文件路径的方法吗?