Sobes.tech
Junior — Middle

Ma'lumotlar bazasi bilan ishlashda satrlarni bloklash uchun SELECT FOR UPDATE buyruğidan foydalandingizmi?

sobes.tech AI

AIdan javob

Ha, SELECT FOR UPDATE buyruği, tanlangan satrlarni ma'lumotlar bazasida bloklash uchun ishlatiladi, shunda ular boshqa tranzaktsiyalar tomonidan o'zgartirilmaydi, hozirgi tranzaksiya yakunlangunga qadar. Bu, o'qish va keyingi yangilash o'rtasida ma'lumotlar o'zgarmasligini ta'minlash uchun foydalidir.

Java va JDBC bilan foydalanish misoli:

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()) {
        // Ma'lumotlar bilan ishlash
    }
    // Barcha operatsiyalar tugagach, tranzaksiya commit qilinadi va blokirovka olib tashlanadi
}

SELECT FOR UPDATE bajarilishi uchun tranzaksiya ichida bajarilishi muhim, shunda blokirovka samarali bo'ladi.