Получите внутренний результат SELECT как ResultSet из инструкции INSERT INTO SELECT в mySQL Java

69
6

У меня есть 2 Database A, Database A и Database B

Чего я хочу достичь:

строить записи из Database A и вставлять их в Database B Обработайте эти записи в моем приложении java

Что я сейчас делаю: я использую два отдельных запроса:

Для (1) я использую INSERT INTO... SELECT... Для (2) я выполняю другой SELECT.

Мое решение работает, но оно не оптимально, так как я получаю записи из Database A дважды (вместо одного раза).

Есть ли способ выполнить INSERT INTO... SELECT... и получить результат внутреннего выбора как ResultSet?

Я знаю, что могу выполнять только SELECT а затем вставлять записи в пакет, но это немного громоздко, и я хочу узнать, есть ли более чистое решение.

спросил(а) 2013-12-03T12:04:00+04:00 6 лет, 9 месяцев назад
1
Решение
57

К сожалению, я не думаю, что это возможно. То, что вы пытаетесь достичь, - это две разные операции: INSERT и SELECT. Однако вы его отрезали, вам все равно придется делать хотя бы один INSERT и один SELECT.

ответил(а) 2013-12-03T12:17:00+04:00 6 лет, 9 месяцев назад
57

Ваше более чистое решение выглядит более громоздким, чем простое чтение и запись.

Поскольку вам нужно манипулировать данными в базе данных B. Вы просто делаете это

Чтение данных из A в приложение Данные обработки Запись данных в B из приложения

Затем вы просто читаете одиночную запись и просты.

Вы не можете получить результат INSERT INTO качестве результата, так как это оператор INSERT

ответил(а) 2013-12-03T12:15:00+04:00 6 лет, 9 месяцев назад
41

используйте это для двух баз данных INSERT INTO Database2 (field1, field2, field3) {SELECT * FROM Database1;);

Обе базы данных имеют одинаковое имя поля.

ответил(а) 2013-12-03T12:12:00+04:00 6 лет, 9 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема