如何从一个表转储数据并插入另一个表

问题描述 投票:1回答:3

我有两个数据库。我想从第一个数据库中的一个表转储数据,并在第二个数据库中插入另一个具有另一个名称的表。 所以我的DB1有表tbl1和tabl2,DB2有表tbl3和tbl4。我知道tabl1和tabl3具有相同的结构。如何使用mysqldump命令将数据从一个复制到另一个? 我试过这样做,但这不行。

mysqldump --user root --password=password --no-create-info DB1 tbl1 > c:/dump.sql
mysql --user root --password=password DB2 tbl3 < c:/dump.sql
mysql mysqldump dump
3个回答
5
投票

由于表名不同,这不起作用

如果两个数据库都使用相同的守护程序位于同一服务器中,则可以直接使用

insert into DB2.tbl3 select * from DB1.tbl1;

如果DB2中不存在tbl1, 伪代码:

# import as tbl1 from DB1 into tbl1 in DB2
mysqldump DB1 tbl1 | mysql DB2

# then rename tbl1 in DB2 to tbl3
mysql DB2 -N <<< "rename table tbl1 to tbl3"

2
投票

我在linux shell命令行中使用

mysqldump --user=username --password=xxxx dbname | mysql --host=remotehost.com --user=username --password=xxxx -C dname 

这将它从本地主机传输到远程主机,即整个数据库。


0
投票

如果您还要复制表格的内容,您可以这样做:

CREATE TABLE `new_table_name` LIKE `old_table_name`;
INSERT INTO `new_table_name` SELECT * FROM `old_table_name`;

如果必须将表从一个数据库复制到另一个数据库,请使用以下命令

 CREATE TABLE `db1.new_table_name` LIKE `db2.old_table_name`;
 INSERT INTO `db1.new_table_name` SELECT * FROM `db2.old_table_name`;

它适用于我作为转储单表和导入是抛出MariaDB的语法错误

© www.soinside.com 2019 - 2024. All rights reserved.