どうする?
カラム定義そのものをExcelでやってみたら良い感じでした。
- データの列見出しの入った先頭行をコピーし、別シートの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のコード整形を使用)。
これでMySQLにテーブルを作って、CSVに変換したテーブルをphpstormとかphpMyAdminとかでインポートします。もとのデータ型式がちゃんとしていれば(当たり前ですが)スパッと入ります。
入らない場合は元データを直すか、フィルタスクリプトを書くか(白目)、とりあえず全部varcharで取り込んでから考えることになりますが、それでもカラム名が定義できていると随分助かります。