请告诉我如何将数据从一个MySQL Db导入另一个MySQL数据库。两个数据库的数据模式完全不同,第二个数据库是第一个数据库的规范化版本。
提前致谢
答案 0 :(得分:2)
我认为更好的方法是使用ETL软件。
根据Wikipedia:
提取,转换和加载(ETL)是数据库使用过程,涉及:
答案 1 :(得分:2)
您正在谈论提取,转换,加载(ETL)脚本。
从非规范化数据到标准化数据是很糟糕的。我希望你做的是反向 - 归一化到非规范化 - 这就是这样:
编写一个shell脚本:
mysqldump olddb >dump.sql
mysql newdb <dump.sql
CREATE TABLE AS SELECT ...
命令并运行它们
通过mysql来创建
非规范化数据。将非规范化数据转换为规范化数据非常困难,需要一种特定于您拥有的数据集的方法。
答案 2 :(得分:1)
我同意斯蒂芬说的话,但是你可以用类似的技巧来实现它。但是你必须创建更详细的查询。你可以这样做:
INSERT INTO table1(field1, field2,...) SELECT field4,field1,... FROM table1;
显然你必须按照正确的顺序进行,IMO这是一个很好的方法,所以你可以用连接等创建复杂的查询。