Me gustaría usar este tipo de solicitud con la secuela para realizar una gran cantidad de actualizaciones en una solicitud (por razones de rendimiento):

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

Aquí está el valor de updateStack:

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

No estoy seguro de cómo la secuela puede analizar correctamente la matriz de actualización. Alguna idea ?

Esta consulta de SQL está funcionando bien:

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

Gracias tenga un buen día.

1
waloc 28 jun. 2019 a las 12:44

1 respuesta

La mejor respuesta

¡He descubierto cómo hacerlo!

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
            }
    )
4
waloc 30 jun. 2019 a las 20:36