gpt4 book ai didi

mysql - 使用新模式将 mysql 数据迁移到多表

转载 作者:行者123 更新时间:2023-11-29 07:35:47 24 4
gpt4 key购买 nike

过去,我在下面创建了不幸的 mysql 模式,现在在某些方面对其进行了清理……这是最糟糕的部分:

|ID|ParentID |listing1|image1|comment1|listing2|image2|comment2|listing3|image3|comment3
|1 |50 |abc |img1 |abc |xyz |img2 |xyz |qwe |img3 |qwe
|2 |51 |abd |img1 |abd |vyz |img2 |vyz |qwz |img3 |qwz
|3 |52 |rtz |img1 |rtz |ghj |img2 |ghj |bnm |img3 |bnm

现在我为旧数据创建了新结构:

表 1( list ):

|ID|ParentID|listing|comment
|1 | 50 |abc |abc
|2 | 50 |xyz |xyz
|3 | 50 |qwe |qwe
|4 | 51 |adb |adb

表 2(媒体):

|ID|ParentID|image
|1 | 50 |img1
|2 | 50 |img2
|3 | 50 |img3
|4 | 51 |img1

我的问题是如何在新架构中获取旧值。我的第一个想法是编写一个 php foreach 来获取值、存储它们并再次插入它们,但是如何...或者我可以直接在 mysql 中完成吗?

谢谢。

最佳答案

您可以使用自动增量创建适当的 table1 和 table2

create table1 (
id int(11) not null autoincrement primary key,
parentID int(11) not null ,
listing varchar(255),
comment varchar(255)
)
;
create table2 (
id int(11) not null autoincrement primary key,
parentID int(11) not null ,
image varchar(255)
)
;

然后一些基于联合的插入选择

insert into table1 (parentID, listing, comment)
select parentID, listing1, comment1
from old_table
union
select parentID, listing2, comment2
from old_table
union
select parentID, listing3, comment3
from old_table
;




insert into tabl2 (parentID, image)

select parentID, image1
from old_table
union
select parentID, image2
from old_table
union
select parentID, image3
from old_table

关于mysql - 使用新模式将 mysql 数据迁移到多表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48921960/

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