Sobes.tech
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 να εκτελείται μέσα σε μια συναλλαγή, ώστε το μπλοκάρισμα να είναι αποτελεσματικό.