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

选择&;使用MySQL跨多个数据库插入,sql,mysql,data-migration,Sql,Mysql,Data Migration,我在位于同一服务器上的两个不同数据库中有两个相同的表。将数据从表复制到另一个表的最佳方式是什么?使用: INSERT INTO db1.table1 SELECT * FROM db2.table2 t2 WHERE NOT EXISTS(SELECT NULL FROM db1.table1 t1 WHERE t1.col = t2.col) exists被简化了,但是您忽略了是否有主键/auto_incre

我在位于同一服务器上的两个不同数据库中有两个相同的表。将数据从表复制到另一个表的最佳方式是什么?

使用:

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

exists被简化了,但是您忽略了是否有主键/auto_increment需要担心/etc.

仅对OMG Ponies的答案稍作阐述,您可以使用任何
WHERE
子句,如下所示:

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

首先,为什么会有这样的冗余数据?@NullUserException我知道这是一个旧的注释,但是当想要将数据子集提取到单独的数据库中进行测试/调试时,它非常有用。如果db1和db2位于不同的ip地址上呢?