Perveskite pinigus tarp sąskaitų ir neleiskite nueiti į minusą
Klasikinis uždavinys apie dvi banko sąskaitas ir pinigų pervedimą tarp jų.
Jei tiesiog perskaitysite abu balansus ir juos atnaujinsite be užraktų, dvi lygiagrečios tranzakcijos gali pamatyti tą pačią būseną ir abi nuskaičiuoti pinigus — sąskaita nueis į minusą. Vienos tranzakcijos viduje perveskite 200 iš Anos sąskaitos (identifikatorius 1) į Bobo sąskaitą (identifikatorius 2): pirma užrakinkite abi eilutes rašymui iki tranzakcijos pabaigos, paskui dviem atnaujinimais nuskaičiuokite 200 iš Anos ir įskaitykite 200 Bobui.
Laukiamo rezultato pavyzdys
Taip atrodo teisingas atsakymas — jo eilučių skaičius yra savitas, jis neprivalo sutapti su schemos lentelėmis.
| id | holder | balance |
|---|---|---|
| 1 | Аня | 800.00 |
| 2 | Боб | 700.00 |
Prisijunkite, kad matytumėte pateikimų istoriją
PrisijungtiPrisijunkite, kad naudotumėte DI mentorių
Prisijungti