Junior — Middle
Kas kasutasite käsku SELECT FOR UPDATE, et lukustada ridu andmebaas töötades?
sobes.tech AI
Vastus AI-lt
Jah, käsk SELECT FOR UPDATE kasutatakse valitud ridade lukustamiseks andmebaasis, et vältida nende muutmist teiste tehingute poolt kuni praeguse tehingu lõpuni. See on kasulik olukordades, kus tuleb tagada, et andmed ei muutu vahepeal lugemisest ja järgnevast uuendamisest.
Näide Java ja JDBC kasutades:
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()) {
// Töö andmetega
}
// Pärast kõigi operatsioonide lõpetamist tehingu commit eemaldab lukustuse
}
Oluline on, et SELECT FOR UPDATE täidetakse tehingu sees, et lukustus oleks tõhus.