コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

MySQL

MySQL5.6にてひらがなとカタカナを同一のものとして検索するためにcollationsを使うのはリスクが多いのでメリット・デメリットを把握する

あいまい検索を実装する際に安易に飛びつくとやけどする気がするのでまとめた。 環境 今回はMySQL5.6のドキュメントをベースにしているためそちらの前提で記載しています。 そもそもMySQLのcollationsとは 日本語で表現すると「照合順序」という言葉になり。…

MySQLの予約語が乗っている一覧のページがある

どっかにあるのかな…と思ったらあった 出典 MySQL :: MySQL 5.6 リファレンスマニュアル :: 9.3 予約語 知ってると何が嬉しいのか たまに予約語というのは増える、のでそれをカラム名などでつかっているとそこらへんが結構大変なことになる。 参考リンク MyS…

MySQLのtimestamp型は2038年問題があるが、datetime型は9999年まで可能。

「MySQLってどれぐらい先まで設定できるんだっけ?」という議論が起こるのでメモ ドキュメント曰く DATETIME または TIMESTAMP 値には、マイクロ秒 (6 桁) までの精度で後続の小数秒部分を含めることができます。特に、MySQL 5.6.4 以降では、DATETIME また…

MySQLで環境変数にある情報をつかってログインする

あれ、これって環境変数パイプできるんだっけか…といつもググってしまうので自分用メモ 環境 やり方と例 以下の情報が環境変数にあったとする PRODUCTION_DATABASE_USER=DBのユーザ名 PRODUCTION_DATABASE_PASSWORD=DBのパスワード PRODUCTION_DATABASE_HOST…

MySQLでテーブル指定をしてdumpファイルを作る

どちらかと言うと自分のためのメモ 環境 $ mysql --version mysql Ver 14.14 Distrib 5.5.62, for Linux (x86_64) using readline 5.1 構文 MySQL :: MySQL 5.6 リファレンスマニュアル :: 4.5.4 mysqldump — データベースバックアッププログラム mysqldump …

MySQL5.7.17のバージョンでデフォルトの設定だとindexの最大バイト数に制約がある

困った、という感じだったので原理をメモる。 環境 mysql> select version(); +------------+ | version() | +------------+ | 5.7.17-log | +------------+ 1 row in set (0.01 sec) 事象 indexを貼ろうとしたときに対象のカラムのバイト数が767byteを超え…

MySQLの設定状況をクエリで調べるときは SHOW GLOBAL VARIABLES を使う

設定情報って設定ファイルを見ればいいんだっけか、というときに 環境 mysql> select version(); +------------+ | version() | +------------+ | 5.7.17-log | +------------+ 1 row in set (0.01 sec) やり方 システム変数の値を調べればわかるので以下の…

MySQLはクエリでもバージョンを調べることができる

豆知識的メモ 環境 $ mysql --version mysql Ver 14.14 Distrib 5.7.24, for osx10.14 (x86_64) using EditLine wrapper やり方 情報関数である version() を見ればいいので、 SELECT version() すればOK。 実例 mysql> SELECT version(); +-----------+ | v…

MySQLのコマンドライン実行( -e , --execute)はファイルに出力するとタブ区切りのTSV形式になる

原理を知らんかったんで調べてみたメモ 環境 $ mysql --version mysql Ver 14.14 Distrib 5.7.24, for osx10.14 (x86_64) using EditLine wrapper やり方 --execute もしくは -e を使うとコマンドラインでMYSQLのクエリを実行できる。 その結果をパイプして…