你能告诉我如何将数据从一个 MySQL Db 导入另一个 MySQL DB。两个数据库的数据模式完全不同,第二个数据库是第一个数据库的规范化版本。
提前致谢
您正在谈论提取、转换、加载 (ETL) 脚本。
从非规范化数据到规范化数据是地狱。我希望你正在做相反的事情 - 规范化到非规范化 - 就像这样:
编写一个 shell 脚本:
mysqldump olddb >dump.sql
mysql newdb <dump.sql
CREATE TABLE AS SELECT ...
命令并通过 mysql 运行它们以创建非规范化数据。将非规范化数据转换为规范化数据非常困难,需要一种特定于您拥有的数据集的方法。
我认为更好的方法是使用 ETL 软件。
根据维基百科:
提取、转换和加载 (ETL) 是数据库使用中的一个过程,涉及:
我同意斯蒂芬所说的,但你可以用类似的技术来实现它。但是您必须创建更详细的查询。您可以执行以下操作:
INSERT INTO table1(field1, field2,...) SELECT field4,field1,... FROM table1;
显然,您必须以正确的顺序执行此操作,IMO 这是一种很好的方法,因此您可以使用连接等创建复杂的查询。