毎月、300 以上の列を含む CSV ファイルを取得します。ファイルのレイアウトはいつでも変更でき、列は追加/削除できます。必要な正確な数の列を含む動的テーブルを作成する方法が必要です。列名は気にしません。Column1、Column2 などにすることができます。すべての型を Varchar(500) に設定する予定です。
理想的には、私が達成したいのは、必要な列の数を渡すだけでループして必要なテーブル定義SQLを作成し、そのSQLを実行するストアドプロシージャです。
これを達成することは可能ですか?私は次のことを書き始めていました:
BEGIN
Declare loopvar int default 1;
Declare tsql VarChar(5000);
Declare table_definition VarChar(8000);
Declare tablename varchar(20);
Set table_definition = 'Column';
set tablename = 'npi_data';
Set loopvar = 1;
While loopVar < 362 DO
set tsql = table_definition + loopvar + 'varchar(500) DEFAULT NULL' ;
set loopvar = loopvar + 1;
end while;
set tsql = 'CREATE TABLE' + tablename + '(' + tsql + ') ENGINE=InnoDB DEFAULT CHARSET=utf8';
execute tsql;
END;
それに近いものが欲しいのですが、本当に必要なのは、任意の数の列を持つテーブルを作成する機能だけです。
ありがとう!