2015年06月21日

Excel VBAで、SQLのinsert文を大量発行


MySQLのDBにおいて、
大量のダミーデータを挿入する必要が出来ました。

んで、色々とダミーデータの挿入の仕方を探したんですけど、
やっぱどうしても値がランダムな関係上、
欲しい形式のデータがないというか…どのサービスも今ひとつ機能が足りなかったんです。

んで、このままでは拉致が開かなかったので、
ダミーデータ自体はExcelで作成し、
VBAを利用してそのExcelデータからSQLを発行、
そのSQLを使ってデータをインサートするという技を使うことにしました。

01

一応、画像からダウンロード出来るようにしてあります。
なお、仮にダウンロードして使用した際の、
いかなる不具合、アクシデントに関しまして責任は持ちませんので、
ご利用は自己責任でお願い致します。
また、改変は自由です。お好きにカスタマイズしてくださいまし。

使い方はこんな感じ。

  1. 『テーブル名』のところにデータを突っ込むテーブルの名前を入れる
  2. 『カラム名』の行?のところに、各カラムの名前を入れる
  3. その下の行から、実際に挿入するデータを入れる
  4. 『クエリ発行!!』ボタンを押すと、同じフォルダ内に『query.txt』てファイルが出来る

こんな感じです。
作成された『query.txt』内に、
入力したデータ分のインサート文が作成されてます。

一応、作成出来るインサート文は無尽蔵です。
入力した行の文だけ、無尽蔵にSQLを発行出来ます。
おれの場合は100行作りましたけど、
おそらく1000行、10000行などでも問題なくいけると思います。
また、カラムも無尽蔵に増やせます。

phpMyAdminのSQL利用で動作確認してまして、
このマクロで発行したinsert文はMySQL+phpMyAdminの環境にて、
読み取り可能でした。
無理だった場合は、各自ソースに手を加えて下さい。
ただ、コメント打つのがちょっとめんどくさかったので、
可読性はあまり高くないですごめんなさい(;・∀・)

ネット上にはいくつかダミーデータ作成サービスがあったので、
まずはそれを利用して各データを発行。
発行されたデータをこのSQL発行システムにコピペして、
必要に応じてデータを加工。
それが終わったら、『クエリ発行』ボタンを押してクエリを発行し、
それを使ってデータをインサート…こんな感じで、
100件ほどデータをインサートしました。さくっと終わってよかったぁ~。

まぁそんなわけで、
ダミーデータだけでなく、
大量のデータの挿入が必要な場合とか、
ダミーデータだけど完全ランダムなデータはダメなときとか、
そもそもこういうプログラムを思いついても組むのがめんどくさい人や、
面白半分の方はどうぞダウンロードしてくださいまし。

ただ、何が起こっても責任はもちません(;・∀・)
あくまでご利用は自己責任でお願い致します(;・∀・)

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)