タグ: MySQL

検索結果: 5件

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

macのMySQLでGROUP BYを使用できるように設定変更する

【概要】macにインストールされているMySQL8系にてGROUP BY句を使用した時に下記のエラーが出力され、実行できない事があります。Expression #5 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'カラム名' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_modeonly_full_group_byこのドキュメントではその対処方法についてまとめています。ちなみに筆者のMySQLのバージョンは下記になります。mac OS CatalinaMySQL 8.0.19【詳細】1. my.cnfのコピーを作成するMySQLの設定を変更する為に、my.cnfを編集します。設定変更に伴い、不具合が起きたい際の対処としてコピーを作成します。cp /usr/local/etc/my.cnf /usr/local/etc/my.cnf.org2. my.cnfを編集するGROUP BYが使用できる設定を追記します。vi /usr/local/etc/my.cnf追記内容[mysqld]...デフォルト設定部分省略...sql_modeSTRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION3. MySQLを再起動する設定を反映させる為に再起動します。mysql.server restart【参考:クエリで設定変更する場合対応】下記のクエリを流すとGROUP BYが使用できるようになります。しかし、MySQLを再起動すると再度下記のクエリを流さないとGROUP BY句が使用できないので注意です。SET GLOBAL sql_mode(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));SET sql_mode(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

カテゴリ: mac 2020-10-11 02:22:24
article-thumbnail

macで既存のDBからER図を作成する

【概要】macにて作成済みのDBからER図を作成する方法をまとめます。このドキュメントではHomebrewを使用するのでまだインストールされていない方は下記の記事を参考にインストールして下さい。macにHomebrewをインストールする【詳細】0. 前提Homebrewをアップデートしておきます。brew update1.graphvizをインストールするbrew install graphvizこれでdotコマンドがインストールされます。2. dotファイルエクスポートするSequelのエクスポート機能で対象DBのDotファイルを作成します。下記はエクスポート時の画面イメージです。3. ER図の画像を作成する・構文dot -Tpng 2で作成したdotファイル 作成するER図の画像の名・例文dot -Tpng sample-db.dot sample-db.png

カテゴリ: MySQL 2020-09-25 01:21:03