يمكن التراجع عن حذف الصفوف باستخدام ROLLBACK عندما ينفذ DELETE داخل معاملة لم تعتمد بعد، وعلى جدول يستخدم محركًا يدعم المعاملات مثل InnoDB. يبدأ المثال المعتاد بـ START TRANSACTION، ثم يجري الحذف، وبعد ذلك نقرر اعتماد العملية أو التراجع عنها.
وجود دعم المعاملات لا يعني إمكانية استعادة أي حذف في أي وقت. إذا نفذ الحذف واعتمد تلقائيًا خارج معاملة صريحة، أو نفذنا COMMIT بعده، فلن يعيده تراجع لاحق. كذلك يجب الانتباه إلى أوامر تعديل البنية التي قد تعتمد المعاملة ضمنيًا قبل أن نحاول التراجع عنها.
مثال
START TRANSACTION;
DELETE FROM tasks WHERE id = 2;
ROLLBACK;
في الشروط المذكورة، يعود الصف المحذوف بعد التراجع. يمكن خلال المعاملة فحص النتيجة قبل اتخاذ القرار، لكن ذلك لا يغني عن كتابة شرط دقيق ومراجعة نطاق الحذف بعناية.
باختصار: يتراجع ROLLBACK عن DELETE غير المعتمد داخل معاملة على جدول يدعم المعاملات.
هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.