Назад к вопросам
Junior — Middle
69
Мог бы ты привести пример того, как одна транзакция работает независимо от другой в базе данных?
Ответ от нейросети
sobes.tech AI
В базах данных транзакции обеспечивают изоляцию, что значит, что изменения, сделанные в одной транзакции, не видны другим до её коммита. Это позволяет двум транзакциям работать независимо.
Например, в Java с использованием JDBC:
Connection conn = dataSource.getConnection();
try {
conn.setAutoCommit(false); // начинаем транзакцию
// Транзакция 1
PreparedStatement ps1 = conn.prepareStatement("UPDATE accounts SET balance = balance - 100 WHERE id = ?");
ps1.setInt(1, 1);
ps1.executeUpdate();
// Пока транзакция не закоммичена, другие транзакции не увидят изменения
conn.commit(); // фиксируем изменения
} catch (SQLException e) {
conn.rollback(); // откат при ошибке
} finally {
conn.close();
}
Если параллельно запущена другая транзакция, она не увидит изменения первой, пока та не сделает commit. Это обеспечивает независимость и целостность данных.