【问题标题】:Select & Insert across multiple databases with MySQL使用 MySQL 在多个数据库中选择和插入
【发布时间】:2011-03-24 21:37:39
【问题描述】:

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

【问题讨论】:

  • 一开始为什么会有这样的冗余数据?
  • @NullUserException 我知道那是一条旧评论,但是当想要将数据子集提取到单独的数据库中进行测试/调试时,它很有用。

标签: sql mysql data-migration


【解决方案1】:

用途:

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 需要担心/等,你就忽略了。

【讨论】:

  • 如果 db1 和 db2 在不同的 ip 地址上怎么办?
【解决方案2】:

为了稍微详细说明 OMG Ponies 的回答,您可以使用 any WHERE 子句,如下所示:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-10
    • 2022-01-22
    • 2018-09-27
    相关资源
    最近更新 更多