7

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

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

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

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

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

但我想必须有一种更有效的方法来通过 SQL 查询来完成这项任务,比如克隆表。

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

提前感谢您建议如何做到这一点。

4

4 回答 4

15

你试过使用MySQL Dump吗?

$ mysqldump yourFirstDatabase -u user -ppassword > yourDatabase.sql
$ echo "create database yourSecondDatabase" | mysql -u user -ppassword
$ mysql yourSecondDatabase -u user -ppassword < yourDatabase.sql
于 2013-02-27T11:23:20.150 回答
8

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

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

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

然后使用命令show tables;

 show source.tables;

然后为每个数据库表(优化创建表和插入行)运行命令:

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

其他方式是使用类似命令:

  create table destination.table like source.table

然后插入行;

  insert into destination.table select * from source.table
于 2013-02-27T11:32:04.743 回答
6

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

  1. 选择所需的数据库
  2. 单击操作选项卡
  3. 在操作选项卡中,转到“复制数据库” -选项并在输入字段中键入所需的克隆数据库名称
  4. 选择“结构和数据”(取决于您的要求)
  5. 选中“复制前创建数据库”“添加 AUTO_INCREMENT 值”复选框
  6. 点击“开始”

用 phpMyAdmin 4.2.13.3 测试

于 2018-03-23T12:56:37.157 回答
-1
  1. 使用 phpmyadmin (export.sql) 导出您选择的数据库
  2. 使用终端/cmd 导入它: mysql -u username -p databasename < export.sql

然后喝杯咖啡...

于 2016-10-09T02:05:20.657 回答