#823

Μετάφερε χρήματα μεταξύ λογαριασμών χωρίς υπερανάληψη

Μια κλασική εργασία με δύο τραπεζικούς λογαριασμούς και μια μεταφορά. Αν απλώς διαβάσεις και τα δύο υπόλοιπα και τα ενημερώσεις χωρίς κλειδώματα, δύο παράλληλες συναλλαγές μπορεί να δουν την ίδια κατάσταση και να αφαιρέσουν αμφότερες τα χρήματα — ο λογαριασμός καταλήγει αρνητικός. Μέσα σε μία μόνο συναλλαγή μετάφερε 200 από τον λογαριασμό της Anna (id 1) στον λογαριασμό του Bob (id 2): πρώτα κλείδωσε και τις δύο γραμμές για το υπόλοιπο της συναλλαγής σε λειτουργία εγγραφής, έπειτα με δύο ενημερώσεις αφαίρεσε 200 από την Anna και πίστωσε 200 στον Bob.

Δείγμα αναμενόμενης εξόδου

Έτσι μοιάζει μια σωστή απάντηση — το πλήθος γραμμών της είναι δικό της, δεν χρειάζεται να ταιριάζει με τους πίνακες του σχήματος.

idholderbalance
1Аня800.00
2Боб700.00

Το αποτέλεσμα του ερωτήματός σας θα εμφανιστεί εδώ