Junior — Middle
Da li ste koristili komandu SELECT FOR UPDATE za zaključavanje redova prilikom rada sa bazom podataka?
sobes.tech АИ
Одговор од АИ
Да, команда SELECT FOR UPDATE используется для блокировки выбранных строк в базе данных, чтобы предотвратить их изменение другими транзакциями до завершения текущей. Это полезно при реализации логики, где нужно гарантировать, что данные не изменятся между чтением и последующим обновлением.
Пример использования в Java с JDBC:
String sql = "SELECT * FROM accounts WHERE id = ? FOR UPDATE";
try (PreparedStatement ps = connection.prepareStatement(sql)) {
ps.setInt(1, accountId);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
// Работа с данными
}
// После выполнения всех операций, коммит транзакции снимет блокировку
}
Важно, что SELECT FOR UPDATE должен выполняться внутри транзакции, чтобы блокировка была эффективной.