使用MySQL跨多个数据库选择和插入数据

17

我有两个相同的表格在不同的数据库中,这些数据库位于同一台服务器上。从一个表格复制数据到另一个表格最好的方法是什么?


你为什么一开始就要有这样的冗余数据呢? - NullUserException
@NullUserException 我知道那是一条旧评论,但当想要将数据子集提取到单独的数据库进行测试/调试时,它非常有用。 - Danny Beckett
2个回答

30

使用:

INSERT INTO db1.table1
SELECT *
  FROM db2.table2 t2
 WHERE NOT EXISTS(SELECT NULL
                    FROM db1.table1 t1
                   WHERE t1.col = t2.col)

这个 exists 操作过于简单了,但你忽略了是否存在需要关注的主键/自增等问题。


5
如果db1和db2位于不同的IP地址上,会怎样? - Shekhar Joshi

3

进一步解释OMG Ponies的答案,你可以像下面这样使用任何WHERE子句:

INSERT INTO db1.tablename
SELECT *
FROM db2.tablename src
WHERE src.lastlogin >= '2013-10-31 07:00:00'

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