【问题标题】:MySQL Insert Into from one Database in another of two different HostMySQL 从两个不同主机中的另一个数据库中的一个数据库插入
【发布时间】:2019-01-08 10:00:02
【问题描述】:

我想将一些值从一个数据库 (DB1) 从一个主机 (HOST1) 推送到另一个数据库 (DB2) 从另一个主机 (HOST2)。查询结构应如下所示。

insert into HOST2.DB2.TABLEA (COL1, COL2, COL3) 
select COL1, COL2, COL3 HOST1.DB1.TABLEB ..

我知道这将适用于同一主机中的两个不同的数据库。但不知道两个不同的主机。

我正在使用 java 来执行此操作。

提前致谢。

【问题讨论】:

  • 除非你在两台主机之间有联合(dev.mysql.com/doc/refman/8.0/en/federated-storage-engine.html),否则它不会工作,不,即使这样你也可能需要稍微修改查询(我不知道具体情况,因此我发表评论而不是答案)。另一种解决方案可能是使用 Java 将数据从一个主机获取到 Java 变量中,然后生成一个 INSERT 以将其放入另一台主机的表中。
  • 这个解决方案可能对Two hosts in jdbc url有帮助
  • 使用控制台可以使用mysqldump。可以导出到 csv 文件,但也必须复制该文件。所以一个java程序似乎最简单——如果数据库对网络开放。也许有 admin sql "console" 站点。

标签: java mysql sql insert


【解决方案1】:

如果是一次性活动,你可以使用 mysql。

首先在源数据库中执行以下查询,然后您将获得需要在目标数据库中运行的查询。

select CONCAT(" insert into test(user_id) values(", user_id, ");") from user_table;

如果不是一次性操作,则需要在代码中制作两个数据源的存储库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-10
    • 1970-01-01
    • 2015-08-15
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 2017-05-05
    相关资源
    最近更新 更多