Junior — Middle
Използвали ли сте командата SELECT FOR UPDATE за блокиране на редове при работа с базата данни?
sobes.tech AI
Отговор от AI
Да, командата SELECT FOR UPDATE се използва за блокиране на избраните редове в базата данни, за да се предотврати тяхната промяна от други транзакции до завършването на текущата. Това е полезно при реализиране на логика, при която трябва да се гарантира, че данните няма да се променят между четенето и последващото обновяване.
Пример за използване в Java с 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()) {
// Работа с данните
}
// След изпълнение на всички операции, транзакцията ще освободи блокировката
}
Важно е SELECT FOR UPDATE да се изпълнява в рамките на транзакция, за да бъде блокировката ефективна.