sql >> Base de Datos >  >> RDS >> Mysql

Cómo agregar varias filas usando Insertar ... EN ACTUALIZACIÓN DE CLAVE DUPLICADA usando knex

Escribí este código para insertar/actualizar una sola fila como objeto o varias filas como una matriz de objetos:

function insertOrUpdate(knex: Knex, tableName: string, data: any) {
  const firstData = data[0] ? data[0] : data;
  return knex.raw(knex(tableName).insert(data).toQuery() + " ON DUPLICATE KEY UPDATE " +
    Object.getOwnPropertyNames(firstData).map((field) => `${field}=VALUES(${field})`).join(", "));
}