Sobes.tech
Junior — Middle

Heb je de opdracht SELECT FOR UPDATE gebruikt om rijen te blokkeren bij het werken met de database?

sobes.tech AI

Antwoord van AI

Ja, de opdracht SELECT FOR UPDATE wordt gebruikt om de geselecteerde rijen in de database te vergrendelen, zodat ze niet door andere transacties kunnen worden gewijzigd totdat de huidige is voltooid. Dit is handig bij het implementeren van logica waarbij gegarandeerd moet worden dat de gegevens niet veranderen tussen het lezen en de daaropvolgende update.

Voorbeeld van gebruik in Java met 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()) {
        // Werken met de gegevens
    }
    // Na alle bewerkingen zal de transactie worden gecommit en de vergrendeling worden opgeheven
}

Het is belangrijk dat SELECT FOR UPDATE binnen een transactie wordt uitgevoerd, zodat de vergrendeling effectief is.