我是数据库新手。我在一台服务器上有一个论坛。我想从这个论坛中提取所有数据,然后导入到不同服务器上的不同论坛(具有不同的表名和结构)。
我的想法可能很有趣,是:
1)使用phpMyAdmin从旧服务器导出论坛数据库表记录。 2)将导出的数据库导入临时数据库。 3)更改表和列名称和结构以匹配目标论坛数据库结构。 4)从临时数据库重新导出表记录。 5)将导出的数据附加到目标数据库,以将数据添加到新论坛(在phpMyAdmin中)。
我知道这可能不合适。
这项工作有效吗?有什么参考我可以参考吗? (我目前正在搜索有关导入/导出数据库的信息,但我找不到有用的资源......)
加: 旧论坛与bbPress有类似的布局。最终目的是将旧论坛的数据导入bbPress。旧论坛有帖子标题,帖子内容,发布日期,发表作者,回复,回复内容,回复作者等等。我想将它们映射到bbPress中的相应字段。
感谢您的帮助。
答案 0 :(得分:1)
虽然SQL有些标准化,但数据库和数据库操作并非如此,我们需要知道您正在使用的特定数据库。也就是说,大多数RDBMS数据库都有CLI工具,可以合理有效地导出一个或多个表以及导入的CLI工具。然后是将输出的可能不兼容性转换为输入所需的内容。
一般来说,过程就是:
对于大多数RDBMS,您还可以选择其他导出和导入格式,例如CSV。如果您提供两个数据库的详细信息,您将获得更具体的帮助。
例如,对于两个MySQL数据库,您可以执行以下操作:
mysqldump -u username -p databaseName tableName > tableName.sql
同样,要将此数据导入MySQL数据库:
mysql -u username -p -D databaseName < tableName.sql
如果数据库兼容,则不需要转换(步骤2)。要修改新导入的表,您可以执行以下操作:
mysql -u username -p -D databaseName < tableNameDDL.sql
<强> tableNameDDL.sql 强>:
ALTER TABLE tableName ADD myNewColumn VARCHAR(60);
要将tableName
中的数据附加到现有表格,您可以执行以下操作:
mysql -u username -p -D databaseName < tableNameAppend.sql
<强> tableNameAppend.sql 强>
INSERT INTO existingTableName (c1, c2, c3 )
SELECT c1, c2, c3 FROM tableName;
您可以在旧数据库中进行转换,当然也可以在导出之前将数据的初始副本放入临时表中。