Reputation: 81
I would like to use this type of request with sequelize to make large number of updates in one request (for performance reasons) :
UPDATE employee
SET address = new.address,
name = new.name
from (values :updateStack) AS new(address, name, employeeId)
WHERE employee.id = new.employeeId
Here is the value of updateStack
:
[{
address: 'France',
name: 'Chris',
employeeId: 21
}, {
address: 'UK',
name: 'Steve',
employeeId: 42
}]
I'm not sure how sequelize can properly parse the updateStack array. Any idea ?
This SQL query is working fine :
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
Thank you and have a good day.
Upvotes: 2
Views: 5522
Reputation: 81
I've discovered how to do it !
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
}
)
Upvotes: 6