LoginSignup
0
2

More than 1 year has passed since last update.

ExcelデータをDBインポートするとき、受け側テーブルをどうするか

Last updated at Posted at 2022-09-30

どうする?

カラム定義そのものをExcelでやってみたら良い感じでした。

スクリーンショット 2022-10-01 8.21.17.png

  • データの列見出しの入った先頭行をコピーし、別シートのA列に行列を入れ替えペースト。
  • B列にSQL(やPHP)で使えるフィールド名を記入する。基本Aのコピペだが、適宜修正。
  • C列にvarchar(100)などののSQL型を記入していく。
  • D列に各カラムのコメント
  • E列の先頭に 「field名 型 comment 'xxx',」 の文字列を作って、以下オートフィル

E列の連結式は

=B1&" "&C1&" "&"comment '"&D1&"',"

とかをつかいます。

変数名をSQL/PHPで使える文字にしているのは、このあとスクリプトとかでLaminasのモデルを自動生成させるためです。

  • E列の内容を、create tableを定義する場所にコピペする。

こんな感じになります(コピペ後Phpstormのコード整形を使用)。

スクリーンショット 2022-10-01 8.18.36.png

これでMySQLにテーブルを作って、CSVに変換したテーブルをphpstormとかphpMyAdminとかでインポートします。もとのデータ型式がちゃんとしていれば(当たり前ですが)スパッと入ります。

入らない場合は元データを直すか、フィルタスクリプトを書くか(白目)、とりあえず全部varcharで取り込んでから考えることになりますが、それでもカラム名が定義できていると随分助かります。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2