gpt4 book ai didi

mysql - 通过不同的列插入创建表

转载 作者:行者123 更新时间:2023-11-29 00:28:43 25 4
gpt4 key购买 nike

我有一个来源(网页),其中包含我需要存储在一个表中的常见数据和不常见数据。

数据可以是这样的:

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

最佳答案

有一个非常简单的解决方案。你需要改变你的表:

table: model
modelName attribute value
xyz 1 xyz
xyz 2 xyz

然后当你执行 INSERT 时,你会做:

INSERT INTO `model` (`modelName`, `attribute`, `value`) VALUES ('xyz', 1, 'xyz')

这是一个规范化的表结构,允许 n 个属性。

关于mysql - 通过不同的列插入创建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17643880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com