Junior — Middle
Ar naudojote SELECT FOR UPDATE komandą eilutėms užrakinti dirbant su duomenų baze?
sobes.tech AI
Atsakymas iš AI
Taip, SELECT FOR UPDATE komanda naudojama pasirinktiems įrašams užblokuoti duomenų bazėje, kad jie nebūtų pakeisti kitų transakcijų iki dabartinės pabaigos. Tai naudinga įgyvendinant logiką, kur reikia užtikrinti, kad duomenys nesikeistų tarp skaitymo ir vėlesnio atnaujinimo.
Pavyzdys Java su 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()) {
// Darbas su duomenimis
}
// Po visų operacijų, transakcijos commit pašalins užraktą
}
Svarbu, kad SELECT FOR UPDATE būtų vykdoma transakcijos metu, kad užraktas būtų veiksmingas.