Inventory, Payments
Safe rollback
BEGIN; UPDATE Inventory SET qty = qty - 2 WHERE product_id=10 AND qty >= 2; SAVEPOINT stock_reserved; INSERT INTO Payments(order_id, amount, paid_at) VALUES (7001, 1200, CURRENT_TIMESTAMP); ROLLBACK TO stock_reserved; COMMIT;
BEGIN; UPDATE Inventory SET qty = qty - 2 WHERE product_id=10 AND qty >= 2; SAVEPOINT stock_reserved; INSERT INTO Payments(order_id, amount, paid_at) VALUES (7001, 1200, CURRENT_TIMESTAMP); ROLLBACK TO stock_reserved; COMMIT;