Back to questions
Т-Банк
Junior — Middle
67
Использовал ли ты команду SELECT FOR UPDATE для блокировки строк при работе с базой данных?
Companies where asked
Answer from AI
sobes.tech AI
Да, команда 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 должен выполняться внутри транзакции, чтобы блокировка была эффективной.