将不同的表从一个数据库导入到另一个数据库

Import different tables from one db to another db

我是数据库新手。我在一台服务器上有一个论坛。我想从此论坛中提取所有数据,然后导入到不同服务器上的不同论坛(具有不同的 table 名称和结构)。

我的想法可能很有趣,是:

1) 使用 phpMyAdmin 从旧服务器导出论坛数据库 table 记录。 2)将导出的数据库导入临时数据库。 3) 更改 table 和列名称以及结构以匹配目标论坛数据库结构。 4) Re-export 来自临时数据库的 table 记录。 5) 将导出的数据附加到目标数据库以将数据添加到新论坛(在 phpMyAdmin 中)。

我知道这可能不合适。

这项工作有高效的流程吗?有没有我可以参考的参考资料? (我目前正在 importing/exporting 数据库中搜索信息,但我还找不到有用的资源...)

已添加: 旧论坛的布局与 bbPress 相似。最终目的是将旧论坛的数据导入bbPress。旧论坛有post标题,post内容,post日期,post作者,回复,回复内容,回复作者..等等。我想将它们映射到 bbPress 中的相应字段。

感谢您的帮助。

虽然 SQL 在某种程度上是标准化的,但数据库和数据库操作并非如此,因此我们需要知道您正在使用的具体数据库。也就是说,大多数 RDBMS 数据库都有 CLI 工具来相当有效地导出一个或多个 tables 以及用于导入的 CLI 工具。然后就是将输出可能的不兼容性转换为输入所需的内容。

一般来说,流程是这样的:

  1. 将 table 数据导出到 SQL 语句
  2. 如有必要,修改 SQL 语句以允许导入
  3. 将修改后的 SQL 语句导入新数据库
  4. 运行 table 新数据库上的转换 (DDL) 脚本
  5. 将转换后的 table 中的数据附加到现有 table

对于大多数 RDBMS,您还可以选择其他导出和导入格式,例如 CSV。如果您提供这两个数据库的详细信息,您将获得更具体的帮助。

例如,对于两个 MySQL 数据库,您可以执行以下操作:

    mysqldump -u username -p databaseName tableName > tableName.sql

同样,要将此数据导入 MySQL 数据库:

    mysql -u username -p -D databaseName < tableName.sql

如果数据库兼容,则不需要转换(第 2 步)。要修改新导入的table,你可以这样做:

    mysql -u username -p -D databaseName < tableNameDDL.sql

tableNameDDL.sql:

    ALTER TABLE tableName ADD myNewColumn VARCHAR(60);

要将 tableName 中的数据附加到现有的 table,您可以执行以下操作:

    mysql -u username -p -D databaseName < tableNameAppend.sql

tableNameAppend.sql

    INSERT INTO existingTableName (c1, c2, c3 )
        SELECT c1, c2, c3 FROM tableName;

您也可以在旧数据库中进行转换,当然,在导出之前将数据的初始副本复制到您的临时 table 中。