如何以不同的名称克隆MySQL数据库具有相同的名称,并使用SQL查询
相同的表和行/内容我知道如何克隆表,例如:如何以不同的名称克隆MySQL数据库具有相同的名称,并使用SQL查询
CREATE TABLE recipes_new LIKE production.recipes;
INSERT recipes_new
SELECT * FROM production.recipes;
但我不知道该怎么克隆,例如a database_old至database_new包含database_old中所有表和行的数据库。
因此,只有数据库的名称会改变。其他一切都保持不变。
现在我通过在phpmyadmin广告中导出数据库来克隆它,然后创建一个新数据库并将其导入新数据库。
但我想必须有一个更有效的方式来通过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
有做事诸如另一种方法:
首先创建一个空数据库:
CREATE DATABASE `destination` DEFAULT CHARACTER SET
latin1 COLLATE latin1_swedish_ci;
然后使用命令节目表;
show source.tables;
,然后运行对每个DB表的命令(优化创建表和插入行)为:
create table destination.table select * from source.table;
和其他方法是使用像命令:
create table destination.table like source.table
,然后插入行;
insert into destination.table select * from source.table
谢谢,我会试试这个解决方案,并让你知道它是否有效。这是否全部在phpmyadmin的SQL查询窗口内? – Derfder 2013-02-27 11:33:37
是的,它是所有的SQL窗口,如果你知道函数,你也可以使用函数,但我不喜欢SQL用户函数 – Vineet1982 2013-02-27 11:35:32
我有这个部分的问题:show 2012_myolddatabase.tables; create table 2013_mynewdatabase.table select * from 2012_myolddatabase.table;它显示了一些谎言,2013_mynewdatabase.table是worng声明或某事。任何建议如何解决它?我猜这是有可能在SQL中“链接”的问题? – Derfder 2013-02-27 11:43:49
- 出口使用phpMyAdmin(export.sql)
- 进口它使用终端/ CMD选择的数据库: 的mysql -u用户名-p数据库名< export.sql
,并得到一杯咖啡...
http://*.com/questions/25794/mysql-copy-duplicate-database – Nanne 2013-02-27 11:22:03
这是在这里回答:http://*.com/ques tions/1887964/duplicate-entire-mysql-database?rq = 1 – ojs 2013-02-27 11:23:50
我认为这个解决方案是针对命令行的。我需要在使用SQL statemens的phpmyadmin SQL查询窗口中使用它。 – Derfder 2013-02-27 11:27:30