全体的に見ると、MySQL は大きく分けて Server レイヤーとストレージエンジンレイヤーの 2 つの部分に分かれています。 Server レイヤー このレイヤーには、コネクタ、クエリキャッシュ、パーサ、オプティマイザ、エグゼキュータなどが含まれます。たとえば ...
これまでMySQLのJSONの活用方法に関して、第197回 MySQLでJSONを活用してみる[その1] と第199回 MySQLでJSONを活用してみる[その2] で簡単に紹介してきました。 今回はちょっとした応用として、JSONの操作を高速に扱えるようにインデックスを貼る方法を2つ紹介 ...
こんな感じでやってしまえば入っちゃいますよね。 ユーザ定義変数を使ってみます。 詳しくは「MySQL :: MySQL 5.1 リファレンスマニュアル (オンラインヘルプ) :: 5.4 ユーザー定義変数」 上記のリファレンスによると、以下のように使えるようです。 mysql> SET @v1 ...
連番を挿入する場合、色々な方法があるかと思いますが、 AUTO_INCREMENT なんかだと欠番が出来ちゃうし… MAX 関数で取得した最大値+1 を INSERT 時に一緒に挿入して…だと 同時アクセスされた時にうまく値をもってこれなかったりするし、 それに 2 回 SQL を発行 ...
さて、第3回まででデータを入力するテーブルが完成したので、今回は実際にデータを入力/変更/追加して第1回の表1を再現 ...
上記の通り、TIMESTAMP型にNOT NULLとdefault値が追加されており、もともとNULLだったデータも現在時刻が入ってしまいました。 結論からいうと、これはexplicit_ defaults_ for_ timestampがOFFであったため、明示的にNULLABLEを指定しなかったことでテーブル定義が変更され ...
この方法は、MySQLにテスト用のダミーデータを1000件挿入したいといった場合になどに役立ちます。パっとできるお手軽な方法を2つ紹介します。1つはshellの標準入力から実行する方法、もう一つはpythonの簡単なスクリプトを利用して実行する方法です。