Sobes.tech
Junior — Middle

Ai folosit comanda SELECT FOR UPDATE pentru a bloca rândurile în timpul lucrului cu baza de date?

sobes.tech AI

Răspuns de la AI

Da, comanda SELECT FOR UPDATE este utilizată pentru a bloca rândurile selectate din bazele de date, pentru a preveni modificarea lor de către alte tranzacții până la finalizarea celei curente. Acest lucru este util atunci când se implementează logică în care trebuie garantat că datele nu se vor schimba între citire și actualizarea ulterioară.

Exemplu de utilizare în Java cu 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()) {
        // Lucru cu datele
    }
    // După toate operațiunile, commit-ul tranzacției va elibera blocarea
}

Este important ca SELECT FOR UPDATE să fie executat în cadrul unei tranzacții pentru ca blocarea să fie eficientă.