1 つのテーブルに格納する必要がある共通データと非共通データを含むソース (Web ページ) があります。
データは次のようになります。
model: xyz, attr_1: xyz, attr_2: xyz
model: xyz, attr_3: xyz, attr_4: xyz
model: xyz, attr_1: xyz, attr_4: xyz
model: xyz, attr_1: xyz, attr_5: xyz
model: xyz, attr_15: xyz, attr_20: xyz
このデータは、次の DML を生成します。
insert into table (model, attr_1, attr_2)values('xyz','xyz','xyz');
insert into table (model, attr_3, attr_4)values('xyz','xyz','xyz');
insert into table (model, attr_1, attr_4)values('xyz','xyz','xyz');
insert into table (model, attr_1, attr_5)values('xyz','xyz','xyz');
insert into table (model, attr_15, attr_20)values('xyz','xyz','xyz');
私の問題は、挿入コマンドの前にテーブルを定義できないため、列を知ることができず、新しい挿入ごとに新しい列を発見する可能性があることです。実際の挿入の前にすべての挿入コマンドを取得できません。私が考える唯一のことは、すべての行を別のテーブルに挿入し(を使用してcreate table as insert into
)UNION ALL
、最終的なテーブルを作成するために使用することです。しかし、これはあまり良い考えではありません。
EDIT正規化されたテーブルを探していません。
最終結果は次のようになります(例の場合):
table_name
id int
model varchar
attr_1 varchar
attr_2 varchar
attr_3 varchar
attr_4 varchar
attr_5 varchar
attr_15 varchar
attr_20 varchar