タグ: INSERT文

検索結果: 2件

article-thumbnail

Node.jsでMySQLへのINSERT文を実行する(単数と複数行対応)

【概要】Node.jsで実行するMySQLへのINSERT文についてまとめます。1レコードでも複数レコードでも対応可能になっています。【詳細】[概要]usersテーブルに複数のuserを登録する方法についてまとめます。この後ループ文で使用されるusersObjには下記のような連想配列でnameとmail情報が入っているとします。let usersObj [ {name:'hoge', mail: '[email protected]'}, {name:'fuga', mail: '[email protected]'}, ...省略...];[詳細]1. 定型となるインサート文を定義するlet insertIntoUsersQuery "INSERT INTO users (name, mail) VALUES ?;";2. クエリに必要な値を持つ配列を作成する・必要な配列の型let arr [['name情報', 'mail情報'], ['name情報', 'mail情報'], ...省略...];配列は上記のような形になります。1レコードのみをINSERTしたい場合も配列内に配列を作成する方法は変わりません。例として連想配列のusersObjからnameとmailの値を取得し、配列を作成しています。let usersArr [];for (let user of usersObj) { usersArr.push([user.name, user.mail]);}3. クエリ実行const connection require('./mysql');connection.query(insertIntoUsersQuery, [usersArr], (err, result) {if (err) {console.log(" Error query ", err);return next(err);}res.json(result);})気を付ける部分は2の項目で作成した配列を配列として囲うことです。上記例のusersArrは既に配列ですが、引数として渡す際に更に配列として囲うことで実行可能です。※ 定数のconnectionには同階層のmysqlディレクトリのindex.jsにMySQL情報が記載されています。

カテゴリ: Node.js 2020-10-30 01:30:13
article-thumbnail

検索した結果をテーブルにINSERTする方法

【概要】MySQLで検索した結果を別テーブルにINSERTする方法についてまとめます。このドキュメントをまとめるきっかけは、1対多のテーブル構成から多対多のテーブルに変更する必要があり、かつそのデータを多対多のテーブルにコピーする必要があった事です。【詳細】[概要]ここでは例としてhogesテーブルとfugasテーブルが存在し、新規で多対多用のhoges_fugasテーブルを作成します。fugaテーブルにはfugasテーブルの情報とhoge_idを保有しています。よって、fugasテーブルに存在する「id」と「hoge_id」を検索し、その結果をhoges_fugasテーブルに挿入します。[クエリ]INSERT INTO hoges_fugas (hoge_id, fuga_id, created, updated)SELECT id, hoge_id, created, updated FROM fugas;これでhogeとfugaの紐づきを持った中間テーブルに全ての値が入ります。※ タイムスタンプの考慮createdやupdatedといったタイムスタンプが必須のテーブルの場合を考慮して、ここではfugasテーブルのcreatedとupdatedの値をそのままhoges_fugasテーブルに格納しています。不要な場合は外して下さい。もしくは現在時刻を入れたい方は下記のクエリを実行して下さい。INSERT INTO hoges_fugas (hoge_id, fuga_id, created, updated)SELECT id, product_id, NOW() AS created, NOW() AS updated FROM comics;

カテゴリ: MySQL 2020-10-17 01:50:19