يعيد TRUNCATE TABLE عداد AUTO_INCREMENT إلى قيمة البداية الخاصة به. في جدول عادي بإعدادات الترقيم الافتراضية تكون البداية واحدًا. لذلك لا يعتمد رقم الصف الجديد بعد التفريغ على آخر رقم كان موجودًا قبل العملية، حتى لو حذفت بيانات كثيرة كانت تحمل أرقامًا مرتفعة.
يختلف هذا السلوك عن حذف جميع الصفوف باستخدام DELETE في جدول InnoDB، إذ لا يعيد ذلك عداد الترقيم تلقائيًا إلى البداية. لا ينبغي اختيار أمر التفريغ بناءً على عدد الصفوف فقط، بل يجب أيضًا التفكير في المعاملات والعلاقات وضرورة الاحتفاظ بتتابع المعرّفات أو إعادة بدئه.
مثال
TRUNCATE TABLE events;
INSERT INTO events (name) VALUES ('Workshop');
إذا كان الجدول يملك مفتاحًا تلقائيًا يبدأ من واحد وفق الإعدادات الافتراضية، يحصل السجل الجديد على هذا الرقم. وجود الرقم نفسه في بيانات خارج الجدول لا يمنع إعادة استخدامه بعد التفريغ.
باختصار: يعيد TRUNCATE تسلسل الترقيم إلى بدايته، ولا يكمل من آخر معرّف سابق.
هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.