شبكة تعلم مع ناو

ماذا يحدث لـ AUTO_INCREMENT عند إدخال رقم كبير يدويًا؟

يسمح MySQL بإدخال قيمة صريحة في عمود AUTO_INCREMENT إذا كانت متوافقة مع النوع والقيود. لا تعني الخاصية أن كتابة المعرّف يدويًا ممنوعة. لكن إدخال قيمة أعلى من العداد الحالي يؤثر في تسلسل القيم التي ستُولّد تلقائيًا بعد ذلك، وهو أمر مهم عند استيراد بيانات تحمل معرّفات سابقة.

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

مثال

CREATE TABLE books (
  id INT AUTO_INCREMENT PRIMARY KEY,
  title VARCHAR(40) NOT NULL
);
INSERT INTO books (id, title) VALUES (50, 'SQL');
INSERT INTO books (title) VALUES ('Keys');

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

باختصار: إدخال معرّف صريح مرتفع يرفع نقطة متابعة التوليد، ويصبح الرقم التالي بعده هو المرشح التلقائي المعتاد.

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

اختبر نفسك

خمسة أسئلة سريعة، مع الإجابة والشرح بعد كل سؤال.