Junior — Middle
Usou o comando SELECT FOR UPDATE para bloquear linhas ao trabalhar com o banco de dados?
sobes.tech IA
Resposta da IA
Sim, a instrução SELECT FOR UPDATE é usada para bloquear as linhas selecionadas na base de dados, para evitar que sejam modificadas por outras transações até que a atual seja concluída. Isto é útil ao implementar lógica onde é necessário garantir que os dados não mudem entre a leitura e a atualização subsequente.
Exemplo de uso em Java com 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()) {
// Trabalhar com os dados
}
// Após todas as operações, o commit da transação removerá o bloqueio
}
É importante que SELECT FOR UPDATE seja executado dentro de uma transação para que o bloqueio seja eficaz.