Sobes.tech
Junior — Middle

Použili ste príkaz SELECT FOR UPDATE na zámok riadkov pri práci s databázou?

sobes.tech AI

Odpoveď od AI

Áno, príkaz SELECT FOR UPDATE sa používa na zablokovanie vybraných riadkov v databáze, aby ich nemohli meniť iné transakcie do dokončenia aktuálnej. Toto je užitočné pri implementácii logiky, kde je potrebné zabezpečiť, že údaje sa nezmenia medzi čítaním a následnou aktualizáciou.

Príklad použitia v Java s 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()) {
        // Práca s údajmi
    }
    // Po vykonaní všetkých operácií, commit transakcie odstráni zámok
}

Dôležité je, aby SELECT FOR UPDATE bol vykonávaný v rámci transakcie, aby bola zámka účinná.