Sobes.tech
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.