Junior — Middle
Czy używałeś polecenia SELECT FOR UPDATE do blokowania wierszy podczas pracy z bazą danych?
sobes.tech AI
Odpowiedź od AI
Tak, polecenie SELECT FOR UPDATE służy do blokowania wybranych wierszy w bazie danych, aby zapobiec ich modyfikacji przez inne transakcje do czasu zakończenia bieżącej. Jest to przydatne przy implementacji logiki, w której trzeba zagwarantować, że dane nie zmienią się między odczytem a późniejszą aktualizacją.
Przykład użycia w Java z 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()) {
// Praca z danymi
}
// Po wykonaniu wszystkich operacji, zatwierdzenie transakcji usunie blokadę
}
Ważne, aby SELECT FOR UPDATE był wykonywany w ramach transakcji, aby blokada była skuteczna.