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