从mySQL Java中的INSERT INTO SELECT语句获取内部SELECT结果作为ResultSet

时间:2013-12-03 09:04:12

标签: java mysql sql database

我有2个数据库,Database ADatabase B

我想要实现的目标:

  1. Database A构建记录并将其插入Database B
  2. 在我的Java应用程序中处理这些记录
  3. 我目前正在做的事情: 我使用两个单独的查询:

    对于(1)我使用INSERT INTO ... SELECT ... 对于(2)我执行另一个SELECT

    我的解决方案有效,但它不是最优的,因为我从Database A获取记录两次(而不是一次)。

    有没有办法执行INSERT INTO ... SELECT ...并将内部选择结果作为ResultSet

    我知道我只能执行SELECT然后批量插入记录,但这有点麻烦,我想知道是否有更清洁的解决方案。

3 个答案:

答案 0 :(得分:1)

您的清洁解决方案看起来比简单的读写操作更麻烦。

因为您必须操纵数据库B中的数据。您只需执行此操作

  1. 从A向您的应用读取数据
  2. 处理数据
  3. 从您的应用中将数据写入B
  4. 然后你就读单读并且很简单。

    您无法获得结果集INSERT INTO的结果,因为这是INSERT声明

答案 1 :(得分:1)

可悲的是,我不认为这是可能的。您要实现的目标是两个不同的操作,即INSERTSELECT。无论你削减它,你仍然必须至少有一个INSERT和一个SELECT

答案 2 :(得分:0)

将此用于两个数据库 INSERT INTO Database2(field1,field2,field3){   SELECT * FROM Database1;);

数据库都具有相同的字段名称。