انتقل إلى محتوى الدرس

Releasing Savepoints and Error Flow تحرير نقاط الحفظ بالمعاملة

تعلّم التحكم بالمعاملات عبر COMMIT و ROLLBACK و SAVEPOINT في MySQL بأسلوب MySQL 8 الحديث مع أمثلة استعلامات SQL وتطبيقات تفاعلية.
1 صفوف تعليمية
MySQL
7 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

بمجرد التأكد من سلامة خطوة فرعية داخل المعاملة وعدم الحاجة للعودة إلى علامتها المرجعية، يمكنك إزالة العلامة بالأمر RELEASE SAVEPOINT لتنظيم تدفق المعاملة:

  • RELEASE SAVEPOINT sp_step_one;: يحذف اسم نقطة الحفظ من ذاكرة المعاملة الحالية دون التراجع عن البيانات أو اعتمادها.
  • التحرير التلقائي عند الإغلاق: يؤدي تنفيذ COMMIT; أو ROLLBACK; الكامل إلى مسح وتحرير جميع نقاط الحفظ التابعة لتلك المعاملة تلقائياً.
  • الخطأ القياسي 1305: محاولة استدعاء نقطة حفظ بعد تحريرها أو بعد انتهاء المعاملة تُرجع الخطأ ERROR 1305 (42000): SAVEPOINT does not exist.
  • قاعدة قِصر زمن المعاملة: اجعل المعاملات سريعة ومباشرة، ولا تنتظر إدخال المستخدم البشري أبداً بينما المعاملة مفتوحة وتحتجز أقفال الصفوف.
SQL
START TRANSACTION;
UPDATE wallet_ledgers SET balance = balance - 80.00 WHERE account_id = 101;
SAVEPOINT sp_step_one;

UPDATE wallet_ledgers SET balance = balance + 80.00 WHERE account_id = 102;
RELEASE SAVEPOINT sp_step_one;
COMMIT;