Sobes.tech
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.