| | 249 | |
| | 250 | '''Што прави процедурата?''' |
| | 251 | |
| | 252 | Оваа stored procedure безбедно го менува авионот доделен на летот, притоа спречувајќи preBooking (overbooking). Користи row-level locking (FOR UPDATE) за да осигура дека ако повеќе операции се случуваат истовремено (како што се нови резервации додека се менува авионот), конфликтите се блокираат. \\ |
| | 253 | |
| | 254 | Процедурата: |
| | 255 | 1. Го заклучува записот за летот |
| | 256 | 2. Ги брои постоечките резервации (со lock) |
| | 257 | 3. Го зема капацитетот на новиот авион (со lock) |
| | 258 | 4. Валидира дека постоечките резервации се вклопуваат во новиот авион |
| | 259 | 5. Го ажурира летот или прави rollback ако капацитетот е надминат |
| | 260 | |
| | 261 | Заклучувањето осигурува дека бројот на резервации и проверката на капацитетот се случуваат атомарно, спречувајќи race conditions. |