BEGIN TRANSACTION;
-- 插入一條記錄
INSERT INTO orders (order_id, order_date, customer_id)
VALUES (1, '2024-06-18', 'C001');
-- 更新庫存
UPDATE products
SET stock = stock - 10
WHERE product_id = 'P001';
-- 假設此處發生某些錯誤,例如庫存不足
IF (SELECT stock FROM products WHERE product_id = 'P001') < 0 THEN
ROLLBACK;
-- 結束交易並報錯
PRINT '訂單失敗,庫存不足';
RETURN;
END IF;
-- 如果沒有錯誤,提交交易
COMMIT;
在這個例子中,如果庫存不足,則執行 ROLLBACK 撤銷之前的所有操作,確保庫存和訂單數據的一致性。