شرح صفوف ومحتوى الفقرة
عند فشل أي شرط منطقي أثناء العملية (مثل عدم كفاية الرصيد، أو نفاد المخزون، أو تعديل صفوف بالخطأ أثناء جلسة عمل)، يقوم الأمر ROLLBACK; بإجهاض المعاملة النشطة واسترجاع القيم الأصلية لجميع الصفوف المتأثرة من سجل التراجع (Undo Log):
START TRANSACTION;: يفتح مظلة الحماية قبل تنفيذ أي أمر تعديل أو حذف حساس.UPDATE wallet_ledgers SET balance = 0.00: يعدل الرصيد مؤقتاً داخل الجلسة الحالية مع بقاء الرصيد الأصلي محفوظاً في سجل التراجع.ROLLBACK;: يعكس جميع التغييرات التي جرت منذ بداية المعاملة ويحرر الأقفال ويغلق المعاملة بأمان.SELECT account_id, balance ...: يؤكد عودة رصيد الحساب رقم101إلى قيمته الأصلية السليمة دون أي تلف.
+------------+---------+
| account_id | balance |
+------------+---------+
| 101 | 900.00 |
+------------+---------+
SQL
START TRANSACTION;
UPDATE wallet_ledgers SET balance = 0.00 WHERE account_id = 101;
SELECT account_id, balance FROM wallet_ledgers WHERE account_id = 101;
-- Discard the accidental update and restore the original balance:
ROLLBACK;
SELECT account_id, balance FROM wallet_ledgers WHERE account_id = 101;