我有一个源(网页),其中包含我需要存储在一个表中的常见数据和不常见数据。
数据可能如下所示:
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
创建最终表。但这听起来不是个好主意。
编辑我不寻找规范化表。
最终结果应该是(如示例):
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