如何使用SQL查询在具有相同名称和相同表和行/内容的不同名称下克隆MySQL数据库

时间:2013-02-27 11:18:53

标签: mysql sql

我知道如何克隆表格,例如:

CREATE TABLE recipes_new LIKE production.recipes; 
INSERT recipes_new 
SELECT * FROM production.recipes;

但我不知道如何克隆,例如一个 database_old database_new 数据库,其中包含来自database_old的所有表和行。

因此,只会更改数据库的名称。其他一切都保持不变。

现在我通过在phpmyadmin广告中导出数据库然后创建新数据库并将其导入新数据库来克隆它。

但我想必须有一种更有效的方法来通过SQL查询执行此任务,就像克隆表一样。

重要!它需要从phpmyadmin中的SQL查询窗口完成,而不是从shell命令行完成。

先谢谢你的建议如何做到这一点。

4 个答案:

答案 0 :(得分:5)

还有另一种方法可以执行以下操作:

首先创建一个空白数据库:

 CREATE DATABASE `destination` DEFAULT CHARACTER SET 
    latin1 COLLATE latin1_swedish_ci;

然后使用命令show tables;

 show source.tables;

然后为每个数据库表(Optimized Create table并插入行)运行命令:

 create table destination.table select * from source.table;

和其他方式使用like命令:

  create table destination.table like source.table

然后插入行;

  insert into destination.table select * from source.table

答案 1 :(得分:4)

您是否尝试过使用MySQL Dump

$ mysqldump yourFirstDatabase -u user -ppassword > yourDatabase.sql
$ echo "create database yourSecondDatabase" | mysql -u user -ppassword
$ mysql yourSecondDatabase -u user -ppassword < yourDatabase.sql

答案 2 :(得分:1)

如果phpMyAdmin可用于数据库,您可以按照以下步骤克隆它:

  1. 选择所需的数据库
  2. 单击操作选项卡
  3. 在操作选项卡中,转到&#34;复制数据库&#34; -option并在输入字段中键入所需的clone-db-name
  4. 选择&#34;结构和数据&#34; (取决于您的要求)
  5. 选中复选框&#34; CREATE DATABASE&#34; &#34;添加AUTO_INCREMENT值&#34;
  6. 点击&#34; GO&#34;
  7.   

    使用phpMyAdmin 4.2.13.3进行测试

答案 3 :(得分:0)

  1. 使用phpmyadmin(export.sql)
  2. 导出您选择的数据库
  3. 使用terminal / cmd导入它: mysql -u username -p databasename&lt; export.sql
  4. 然后喝杯咖啡......