我有一个源(网页),它具有我需要存储在一个表中的公用数据和罕见数据。按不同的列创建表插入
的数据可以是这样的:
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');
我的问题是,INSERT命令,所以我可以在我无法定义表不知道列和每一个新的插入我可能会发现新的列。在实际插入之前,我无法获得所有插入命令。我唯一想到的是将每一行插入到不同的表中(使用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
就像你不能吃你的蛋糕,仍然有它,你不能让简单和不规范它。 – mvp