Выполнение нескольких запросов как одна транзакция dblinkJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Выполнение нескольких запросов как одна транзакция dblink

Сообщение Anonymous »

Я работаю над приложением Java, где мне нужно одновременно выполнить эти два запроса (как строки в Java) и откатить транзакцию, если есть ошибки.

Код: Выделить всё

SELECT dblink_exec('hostaddr=xxx.xx.xxx.xxx port=5432 dbname=bdname user=myuser password=mypass connect_timeout=2',
'INSERT INTO table3(field4)
VALUES (5)') AS result;

SELECT dblink_exec('hostaddr=xxx.xx.xxx.xxx port=5432 dbname=bdname user=myuser password=mypass connect_timeout=2',
'UPDATE table1 SET field2 = field2 + 3.0 WHERE field1 = 16436') AS result;
ОБНОВЛЕНИЕ

Я создал одну строку с двумя запросами, разделенными ;< /code> как указано в комментариях

ОБНОВЛЕНИЕ

Я пробовал JDBC атомарные транзакции как код в Java. Я вызываю сбой второго sql, но даже если я указываю .setAutoCommit(false); dblink повлиял на другую базу данных с первым запросом. Я попробовал тот же код без транзакций dblink, и откат работает хорошо. Проблема в dblink.

ОБНОВЛЕНИЕ Java

Код: Выделить всё

public static boolean ejecutarTransaccionDblink(String sql) {
boolean estado = false;
try {
Statement sentencia = conexion.createStatement();
conexion.setAutoCommit(false);
if (sql.length() != 0) {
if (sentencia.execute(sql)) {
conexion.commit();
estado = true;
}
}
} catch (SQLException ex) {
System.out.println(ex.toString());
try {
estado = false;
conexion.rollback();
} catch (SQLException ex1) {
}
} finally {
try {
conexion.setAutoCommit(true);
return estado;
} catch (SQLException ex) {
return estado;
}
}
}
Спасибо за помощь.

Подробнее здесь: https://stackoverflow.com/questions/369 ... ransaction
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»