sql >> Databasteknik >  >> RDS >> Mysql

Hur man lägger till flera rader med Infoga ... PÅ DUBLIKAT UPPDATERING AV NYCKEL med knex

Jag skrev den här koden för att infoga/uppdatera antingen en enda rad som ett objekt eller flera rader som en array av objekt:

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(", "));
}


  1. MySQL hoppar över första raden

  2. 13 bästa metoder för SQL Server-säkerhet

  3. Mysql eller/och prioritet?

  4. Neo4j - Ta bort en nod med Cypher