1

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 intoUNION 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
4

3 に答える 3