将数据库复制到包含结构和数据的新数据库中

时间:2011-01-15 02:47:45

标签: php mysql

在phpMyAdmin的操作下,我可以“将数据库复制到:”并选择

  • 结构和数据
  • 复制前创建数据库
  • 添加AUTO_INCREMENT值

我需要能够在不使用phpMyAdmin的情况下做到这一点。

我知道如何创建数据库和用户。 我有一个源数据库,这是我可以工作的shell所以我真正需要的是如何复制所有表结构和数据部分。 (我知道,更难的部分)

系统()& exec ()不是我的选项,它排除 mysqldump 。 (我认为)

如何遍历每个表并重新创建它的结构和数据?

它只是循环遍历

的结果
SHOW TABLES

然后循环遍历每个表

DESCRIBE tablename

然后,是否有一种简单的方法可以复制数据?


更新

所以,我最终选择了:

SHOW TABLES;

每张桌子然后我做了

SHOW CREATE TABLE `tablename`;

然后

INSERT INTO `newBDname`.`tablename` SELECT * FROM `existingDBname`.`tablename`;    

2 个答案:

答案 0 :(得分:4)

您可以在SHOW TABLES上使用mysql_fetch_assoc,然后为每个结果存储mysql_fetch_result SHOW CREATE TABLE $ table_name的输出,然后在$ show_create_table上发出mysql_query

希望这有助于...更多地帮助而不是为你做这件事。 :)

答案 1 :(得分:3)

使用SELECT INTO来完成此任务。

SELECT * 
INTO destinationDB..newTable 
FROM sourceDB..existingTable