Sobes.tech
Junior — Middle

Vai esat izmantojis SELECT FOR UPDATE komandu, lai bloķētu rindas, strādājot ar datu bāzi?

sobes.tech AI

Atbilde no AI

Jā, komanda SELECT FOR UPDATE tiek izmantota, lai bloķētu atlasītās rindas datu bāzē, lai novērstu to izmaiņas no citām transakcijām līdz pašreizējās pabeigšanai. Tas ir noderīgi, īstenojot loģiku, kur ir jānodrošina, ka dati nemainās starp lasīšanu un turpmāko atjaunināšanu.

Piemērs Java ar 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()) {
        // Darbs ar datiem
    }
    // Pēc visu operāciju pabeigšanas, transakcijas commīts noņems bloķēšanu
}

Ir svarīgi, lai SELECT FOR UPDATE tiktu izpildīts transakcijas ietvaros, lai bloķēšana būtu efektīva.