繁体   English   中英

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

[英]How to clone MySQL database under a different name with the same name and the same tables and rows/content using SQL query

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

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

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

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

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

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

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

预先感谢您建议如何做到这一点。

你试过使用MySQL Dump吗?

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

重要的! 它需要从 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;

另一种方式是使用 like 命令:

  create table destination.table like source.table

然后插入行;

  insert into destination.table select * from source.table

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

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

使用 phpMyAdmin 4.2.13.3 测试

  1. 使用 phpmyadmin (export.sql) 导出您选择的数据库
  2. 使用终端/cmd 导入它: mysql -u username -p databasename < export.sql

然后喝杯咖啡……

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM