لا يقتصر أثر DROP TABLE لجدول عادي في MySQL على إزالة ذلك الجدول. فهو من الأوامر التي تسبب اعتمادًا ضمنيًا، وبالتالي قد يعتمد تغييرات سابقة كانت لا تزال معلقة داخل المعاملة الحالية. لهذا يمكن أن يبقى تعديل على جدول آخر رغم تنفيذ ROLLBACK بعد أمر الحذف.
لنفترض أننا عدلنا راتب موظف داخل معاملة، ثم حذفنا جدول أحداث عاديًا لا يرتبط بالموظفين. قد يبدو أن العمليتين منفصلتان بسبب اختلاف الجدولين، لكن حدود المعاملة تتأثر بالأمر الثاني. لا يشترط أن يستهدف DROP الجدول المعدل نفسه حتى يعتمد التحديث السابق في الجلسة الحالية.
مثال
START TRANSACTION;
UPDATE employees SET salary = 1500 WHERE id = 1;
DROP TABLE events;
ROLLBACK;
يفترض المثال أن جدول الأحداث عادي وليس مؤقتًا، وأن الحذف ينجح. من الأفضل فصل تغييرات البنية عن المعاملات التي نعتمد على إمكانية إلغائها، مع فهم حدود كل خطوة قبل التنفيذ.
باختصار: قد يجعل DROP TABLE التحديث السابق معتمدًا، فلا يلغيه ROLLBACK اللاحق.
هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.