gpt4 book ai didi

mysql - 将数据库复制到另一个具有其他结构的数据库

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

我有一个网站,其数据库(MySQL)非常陈旧且设计糟糕。我正在创建一个新版本的网站,并且定义了另一个数据库(MySQL),它当然设计得更好(标准化 e.a.)

现在我遇到了将旧数据库的数据转移到新数据库的问题。我无法使用 mysqldump 作为表和引用的布局。尽管某些属性是相同的,但完全不同。

所以我的问题是这种工作的最佳实践是什么。例如

Customer,其中对新Customer具有属性namestreetsomething unimportant code> 具有属性 namestreet新且重要的内容

的表

带有外键的表怎么样? ?

亲切的问候

延斯·布伊斯

最佳答案

没有真正明确定义的方法来执行此操作 - 它更多的是手动任务,定义如何转换数据。可以说是 ETL(提取、转换和加载)的一种形式。

从基表开始,编写一些插入语句以获取其中的核心数据,并根据需要进行转换。然后移至相关数据的“下一级”并重复,直到复制完所有信息。

请注意,通常情况下,新的理想模式无法使用旧数据库完全实现(具有所有约束等),因为某些信息可能会丢失。在这些情况下,您必须 a) 在加载过程中根据需要生成数据,或者 b) 关闭约束,以便您可以加载旧数据,直到这些数据被清理到足以强制执行它们为止。

总而言之,这是一种非常针对具体场景的事情,在大多数情况下往往需要手动处理。无论如何,据我所知。

最后,自从我使用 MySQL 以来已经有一段时间了,但是大多数数据库引擎都允许某种两部分命名,因此您可以从单个脚本中访问两个单独的数据库(在同一服务器上),因此您的插入语句最终可能看起来像这样:

INSERT INTO newdb.newtable (thisfield, thatfield) 
SELECT thisfield, thatfield FROM olddb.oldtable;

(当然,应用了适用的转换)

关于mysql - 将数据库复制到另一个具有其他结构的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40420048/

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