MySQL2 バルクインサート・バルクアップデート - Node.js

バルクインサート

script.js

const mysql = require('mysql2/promise');

const pool = mysql.createPool({
  host: 'localhost',
  user: 'root',
  database: 'mydb',
  password: 'password',
});


(async () => {
    let data = [
        ["taro", 30],
        ["jiro", 40]
    ]

    try {
        const [results, fields] = await pool.query('INSERT INTO users (name, age) VALUES ?', [data]);
        console.log(results);
    } catch (err) {
        console.log(err);
    }
    pool.end();
})();

バルクアップデート

ON DUPLICATE KEY UPDATE 句を使うと、UNIQUE インデックスまたは PRIMARY KEY の値が重複するとき更新します。

script.js

const mysql = require('mysql2/promise');

const pool = mysql.createPool({
  host: 'localhost',
  user: 'root',
  database: 'mydb',
  password: 'password',
});


(async () => {
    let data = [
        [1, "taro", 10],
        [2, "jiro", 10]
    ]

    try {
        const [results, fields] = await pool.query('INSERT INTO users (id, name, age) VALUES ? ON DUPLICATE KEY UPDATE `name` = VALUES(`name`), `age` = VALUES(`age`)', [data]);
        console.log(results);
    } catch (err) {
        console.log(err);
    }
    pool.end();
})();