从一个表复制数据到另一个表。数据库不同,表结构也不同。

3
我正在寻找解决我的MySQL数据复制问题的方案。我在一个名为DB1的数据库中有一个包含一些数据的表TAB1。现在,我想把这些数据行中的一部分迁移到另一个名为DB2的数据库中的表TAB2中。
对于MySQL服务器,编写这样的SQL脚本的理想方法是什么?我无法编写java/php程序等,因为我没有访问代码库的权限。
请提供任何示例链接。我知道这可以通过Oracle的DBLink完成,但如何在MySQL中完成呢?
谢谢!

从一个数据库中选择数据并将其插入到另一个数据库中?没有具体细节很难确定要做什么。 - Jesus Ramos
4个回答

6
insert into db2.table2 (field1,field2,..,fieldN)
select field1,field2,..,fieldN from db1.table1

编辑. 如果你需要在两个不同的数据库之间进行更新,这是正确的语法:

update 
db2.table2 as t2,
db1.table1 as t1
set 
t2.field1 = t1.field1,
t2.field2 = t1.field2,
t2.field3 = t1.field3
where t1.id = t2.id

你永远不知道幕后有什么样的奇怪表结构。 - Jesus Ramos
是的,数据库在同一服务器上。我必须根据从表TAB1中获取的某些列的值来更新表TAB2的少数列的值。这不是简单的插入/选择操作。我只能使用在两个表中基本上相同的主键。 - Ahsan

3
如果两个数据库在同一台服务器上,最简单的方法是使用INSERT INTO... SELECT查询。
INSERT INTO
   database2.table2 (c1, c2, c3)
SELECT
   c2, c4, MD5(c3)  --you can choose only these columns that are needed as well as use functions to convert data to required format if needed
FROM
   database1.table1

0

这将把一个表中的所有数据复制到另一个表中(MySQL)

INSERT INTO  `databse_name`.`tablename_copy` 
SELECT * 
FROM  `databse_name`.`tablename` ;

如果设置了主键,这将会创建一些问题。请检查主键重复错误。



网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接