sql >> Database >  >> RDS >> Mysql

Bulk insert met mysql2 en NodeJs gooit 500

Dit is een bekend probleem met execute en query methode in mysql2

Ik heb een werkend alternatief gevonden.

createWorklog = async ({ sqlArray }) => {
        const sql = `INSERT INTO ${this.tableName}
        (project_id, user_id, date, duration, task, description) VALUES ?`

        const result = await query(sql, [sqlArray], true) // adding true for multiple insert
        const affectedRows = result ? result.affectedRows : 0;

        return affectedRows;
}

Dan kan de vraag worden geschreven zoals hieronder

    return new Promise((resolve, reject) => {
      const callback = ...

      if (multiple) this.db.query(sql, values, callback);
            else this.db.execute(sql, values, callback);

    }).catch(err => {
      ...
...
    });
  }
}

Meer informatie over dit probleem vindt u hier https://github.com/sidorares/ node-mysql2/issues/830




  1. Prestatiestraf voor geneste mysql-query's

  2. Waar/Onwaar versus 0/1 in MySQL

  3. PG COPY-fout:ongeldige invoersyntaxis voor geheel getal

  4. Hoe kan ik mij beschermen tegen SQL-injectie-aanvallen met Perl's DBI?