skillup

技術ブログ

Database

データベースによるテストデータ作成

投稿日:2016年8月30日 更新日:

テスト環境を作る際に、テストデータを作るのが面倒・・・なんかライブラリでもないかな・・と思っていたんですが、MySQLでいろいろと簡単にできます。

数字

rand()は通常のプログラムと同じで0~1での数字を任意に出力します。当然100のところを好きな数字にしてあげれば1~その数までとなります。

任意の文字

ランダムな半角英数字を作れます。上記の例は1~10まで。パスワードと同じ原理かと思います。concatを使えばさらに任意の文字と組み合わせることができます。

日付

date_addは下記リンクを参考に。

DATE_ADD(date,INTERVAL expr unit)

一番最後の構文は説明が必要でしょう。

contact_wsは単純な連結です。

addtimeは任意の日付の加算を行うことができます。加算式がやや複雑です。

w3resource MySQL ADDTIME() function

私が説明するよりこのリンクがはるかにわかりやすい・・英語ですが、式だけでわかると思います。

sec_to_time

数字をHH:MM:SSで表記します。

MySQL @Wiki 実用リファレンス SEC_TO_TIME

date_formatはその名のとおり通常のフォーマットです。

日付に関しては結構いろいろなことができるのでもっと知っておけばよかったです・・・

参考

テストのダミーデータ作成

ちょうど去年書きましたが、めちゃくちゃ役に立ちました。リンクが(爆)

MySQLで簡単にランダムなテストデータを作成する方法

この記事自体ここのパクリに近いです(爆)。

-Database
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

アンチパターン 参照渡しと値渡し+キー情報の設定+同一値を複数テーブルに配置+正規化が不十分+集計表+不適切なステータス値

本日は自分がデータベースの設計をしていて気を付かないといけないなーと思った点などを。 注意点としては設計のミスは実装で取り返しにくいことが多いので極力気を付けましょう。あといろいろなテーブルのパターン …

no image

複数GROUP BYでの注意

GROUP BYしたときに件数が増えるという現象があったので一応メモ。というか当たり前のことですが・・・ たとえば以下のようなテーブルがあったとします。 student id student_name …

no image

CASE式のすすめ

SQL実践入門を7割がたぐらい終えたところで同著者の方の「達人に学ぶSQL徹底指南書」を学習しようと思っています。 この方の著書は気づいたら結構読んでましたね。 Contents1 CASE式での注意 …

no image

SQL 更新系に関して

SQL実践入門、残り2章になりましたが、いやーむずいっす。 今回は9章を進めていますがSQLはもともと検索を主な用途として発展したため、SELECT文の使用がメインになります。 ですが、UPDATE文 …

no image

ajaxのasync:falseと複数DBのjoinに関して

本日も小ネタ集です。 Contents1 ajax:false2 複数DBでのJOIN ajax:false ajaxは非同期処理が基本ですが、async:falseとすると同期処理になります。 ただ …