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ă.