node.js mysqlに接続してdeleteを実行してデータを削除する

node.js mysqlに接続してdeleteを実行してデータを削除する

node.jsのライブラリ「mysql」でmysqlに接続してdeleteを実行してデータを削除するサンプルコードを記述してます。nodeのバージョンは14.15.1となります。

環境

  • OS  CentOS Linux release 8.0.1905 (Core)
  • node V14.15.1
  • npm 6.14.8
  • mysql 8.0.20-11

mysqlインストール

mysqlを使用して、接続するので、npmでインストールしておきます。

npm i mysql

deleteを実行

先にデータを削除するテーブル「person」にデータを作成しておきます。

mysql> insert into person values ('suzuki', 25);
Query OK, 1 row affected (0.06 sec)

mysql> insert into person values ('tanka', 30);
Query OK, 1 row affected (0.06 sec)

mysql> insert into person values ('nakata', 33);
Query OK, 1 row affected (0.05 sec)

mysql> select * from person;
+--------+-----+
| name   | age |
+--------+-----+
| suzuki |  25 |
| tanka  |  30 |
| nakata |  33 |
+--------+-----+

以下のコードは、テーブル「person」にdeleteを実行してデータを削除するサンプルコードとなります。

const mysql = require('mysql');

// DBに接続する設定情報
const con = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'password',
    database: 'NodeTest'
});

con.connect((err) => {

    if (err) throw err;

    console.log('接続完了');

    const q = "DELETE FROM person WHERE name = 'nakata';"

    con.query(q, (err, result, fields) => {
        if (err) throw err;
        console.log(result)
    });
});

実行結果

console.log('接続完了');
接続完了

console.log(result)
OkPacket {
  fieldCount: 0,
  affectedRows: 1,
  insertId: 0,
  serverStatus: 34,
  warningCount: 0,
  message: '',
  protocol41: true,
  changedRows: 0
}

mysql側でもデータが削除されたことが確認できます。

mysql> select * from person;
+--------+-----+
| name   | age |
+--------+-----+
| suzuki |  25 |
| tanka  |  30 |
+--------+-----+

また「?」を使用することも可能です。

con.connect((err) => {

    if (err) throw err;

    console.log('接続完了');

    const q = "DELETE FROM person WHERE name = ?;"

    con.query(q, ['suzuki'], (err, result, fields) => {
        if (err) throw err;
        console.log(result)
    });
});