#24 実践 アプリ作成 【その5 ~DB構築-4 (Excelによるスクリプト生成)】

前回、MySQL for Excelを使用しましたが、それでも一つひとつ設定する上、失敗したらすべてやり直し。ちょっと効率が悪いように思います。それでしたら自分で…と思い、次のようなエクセルマクロを作成してました。

当該エクセルファイルを開きます。
まずはスキーマ-名、キャラクターセット、エンジンを設定します。ここでは、ECO/utf8/InnoDBとしています。
Image1
その上で、テーブル設計情報としてM_[テーブル名]、データ内容として[テーブル名]の2つで一つのシートを作成します。

作成する[aSt]のM_aStは次の通り。
Image2
そして入れ込みたいデータのaStは次の通り。
Image3
同様に、aItem / aStItem / aDataも作成して目次シートに戻り、まずはテーブル作成ボタンを押します。
Image4
Image5
ここでスキーマー名を確認し、処理したいテーブルにチェックを入れてOKボタンを押します。
すると作成するフォルダを確認されますので、任意に設定し、OKボタンを押します。
Image6
Image7
Image8
当該フォルダを開くと次のようになっています。
Image9
aStのスクリプトファイルは、Create_aSt.sqlです。これを開いてみます。

またCreate_ALL.sqlは、選択したすべてのテーブルについて記載されています。

このスクリプトファイルをMySQLに反映させるのですが、簡単に行うにはXAMPP Control PanelにおけるMySQLにてAdminをクリックします。
Image10
phpMyAdminが開きますので、スキーマ名のECOをクリックしてSQLタブを選択。そこにコピー&ペーストしたスクリプトを貼り付け、実行ボタンを押します(初回時、Drop Table節は削除する必要あり)。Image11
Image12
これでテーブルが生成されました。続いてデータを入れ込みますが、執り行い方は同じです。データ作成ボタンを押すと同じようにスクリプトが生成されます。
Image13
INSERT_aSt.sqlを開くと次のようになっています。

これまた同様、phpMyAdminからSQLを実行してみます。上手くデータが生成されました。文字化けもしていません。

ただ本当は、ここまで辿り着くのにTry-Errorの連続。特に、MySQLの[‘](クォーテーション)と[`](バッククォート)が混同し、整理するまでやたらと時間を要してしまいました。
Image14こっちの方が、よっぽど効率的(?)。手前味噌でした。

なお、このエクセルマクロですが、ご要望ありましたらソース開示、ファイル提供を行っています(ただし、エクセルマクロについては、本サンプルデータベース分のみ対応しており、MySQLの豊富な型すべてには未対応)。お申し込みは(takai@mm-s.biz)までメールください。(表題にMySQLエクセルマクロ提供希望としてください)。本マクロは、SQL ServerやOracleにも別ファイルですが対応しています。


コメントを残す

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