Changes between Version 42 and Version 43 of Transactions
- Timestamp:
- 02/10/26 18:12:14 (3 weeks ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Transactions
v42 v43 127 127 }}} 128 128 129 ===== Procedure Change Seat (атомична промена) 130 Ако новото седиште е веќе земено, не смееме да го изгубиме старото -> промената мора да биде all or nothing. 129 131 132 {{{ 133 DELIMITER $$ 134 135 CREATE PROCEDURE sp_change_seat( 136 IN p_booking_id INT, 137 IN p_new_seat CHAR(4) 138 ) 139 BEGIN 140 DECLARE v_flight_id INT; 141 DECLARE exit handler FOR SQLEXCEPTION 142 BEGIN 143 ROLLBACK; 144 SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Seat change failed (transaction rolled back).'; 145 END; 146 147 START TRANSACTION; 148 149 SELECT flight_id INTO v_flight_id 150 FROM booking 151 WHERE booking_id = p_booking_id 152 FOR UPDATE; 153 154 UPDATE booking 155 SET seat = p_new_seat 156 WHERE booking_id = p_booking_id; 157 158 COMMIT; 159 END$$ 160 161 DELIMITER ; 162 }}} 163 164 165
