ما رقم AUTO_INCREMENT التالي بعد TRUNCATE في MySQL؟

متوسطقراءة دقيقةآخر تحديث 2 أكتوبر 2026

SQL قواعد البيانات

الإجابة

يعيد TRUNCATE TABLE عداد AUTO_INCREMENT إلى قيمة البداية الخاصة به. في جدول عادي بإعدادات الترقيم الافتراضية تكون البداية واحدًا. لذلك لا يعتمد رقم الصف الجديد بعد التفريغ على آخر رقم كان موجودًا قبل العملية، حتى لو حذفت بيانات كثيرة كانت تحمل أرقامًا مرتفعة.

يختلف هذا السلوك عن حذف جميع الصفوف باستخدام DELETE في جدول InnoDB، إذ لا يعيد ذلك عداد الترقيم تلقائيًا إلى البداية. لا ينبغي اختيار أمر التفريغ بناءً على عدد الصفوف فقط، بل يجب أيضًا التفكير في المعاملات والعلاقات وضرورة الاحتفاظ بتتابع المعرّفات أو إعادة بدئه.

مثال

TRUNCATE TABLE events;
INSERT INTO events (name) VALUES ('Workshop');

إذا كان الجدول يملك مفتاحًا تلقائيًا يبدأ من واحد وفق الإعدادات الافتراضية، يحصل السجل الجديد على هذا الرقم. وجود الرقم نفسه في بيانات خارج الجدول لا يمنع إعادة استخدامه بعد التفريغ.

باختصار: يعيد TRUNCATE تسلسل الترقيم إلى بدايته، ولا يكمل من آخر معرّف سابق.

هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.

اختبر فهمك

ما id الذي يعرضه الاستعلام الأخير في الإعدادات الافتراضية؟

CREATE TABLE events (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(50) NOT NULL
) ENGINE = InnoDB;
INSERT INTO events (name) VALUES ('A'), ('B'), ('C');
TRUNCATE TABLE events;
INSERT INTO events (name) VALUES ('D');
SELECT id FROM events;