SQLファイルの作り方
DBって何?レベルの初心者かつ、プログラミングできない人が実行して
データが数千行以上6万行未満ならこの方法が妥当なのかな。
頻繁にこういう作業を行うならMacro組んだらいいのかな。。
用意するものは以下のとおり。
- ClientPC(Windows+MS Office(Excel))
- Server(Linux(MySQL))
- ClientPCにMySQL QueryBrowser(MySQL Admin Toolのインストール)
- Notepad以外のテキストエディタ(今回はTerapadを使用しました)
- 対象のファイル
手順は以下の通り
- 対象のデータをExcel形式にする。置き換えなどを行ってなんとか対象データうまいこと簡単にExcelに変更する。元々Excelでデータ作成してあれば特に不要。
- A列に命令文 INSERT TABLE TABLE名 (を入力。
- 後は型にとデータ数に応じて間に','を入力するための列を作成する。
- 最終列に');を入力
- Excelで名前を付けて保存にする→データ形式をテキスト(Tab区切り)にする。(でないとデータが途中で区切られる、省略されることもしばしば。
- 保存されたテキストにTabと"が追加されているのでそれらを置き換えで削除する。
- そもそもデータ内に禁則文字がないかを確認(')がある場合はその前に(\)を入力し(\')とする。 sqliteの場合は(') -> ('')とする。
- データがそれぞれきちんと個数があるか、定義された型の通りになっているのかを確認。
- MySQL QueryBrowser上でFile→SQL Scriptで、作成したテキストを開く(対応した文字コードで)
- その際、日本語が文字化けしていないか確認する。文字化けしている場合は文字コード変換ツールを使うか、もしくはTerapadの文字コードの読み直し機能を使って一度読み直す→文字が化ける→別Terapadを起動してそこで同じファイルを開く→コピー→文字コード読み直しをしたTerapadへペースト→文字コードを指定して保存するでOK
- 構文に異常がない、文字コードに異常がない場合はきれいに色分けされたスクリプトが表示されます。行数が多いときは途中でQueryBrowserが勝手に落ちるかも…
- で、Executeをクリック
- Error出力されたときはたいてい禁則文字が紛れ込んでいるか、重複レコードの入力か、データ構造と違ったデータを入力しようとしてしまっている場合が多いです。
以上、メモ終わり。