الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

بعد حذف صف من الجدول كيف أعيد ترتيب عامود AUTO_INCREMENT

بدأه هدف الشمالي في 4 مايو 2012 · 1 رد · 975 مشاهدة · في قواعد بيانات MySQL
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

سؤالي كما في العنوان كيف أُعيد ترتيب عامود حددته بأنه AUTO_INCREMENT وذلك بعد حذف بعض البيانات من الجدول ؟

فمثلًا عندي جدول من عامودين الأول اسمه id والثاني name وفي الجدول 3 أسماء فإذا حذفت الاسم الثاني فإن عامود id يصبح

في الصف الأول 1 والصف الثاني 3 وأنا أريده 1 ثم 2 ، يعني يعاد ترتيبه .

تم تعديل هذه المشاركة بواسطة هدف الشمالي في 4 مايو 2012 في 15:05

#2

هذه ليست إجابة بل معلومة أود أن أخبرك عنها.

إعادة ترتيب المعرفات id ﻻتستخدم في الواقع, ولكن هناك دوماً شواذ, لأنها تخلق مشاكل كبيرة في قاعدة البيانات. مثلاً لو كانت لديك موقع يستخدم لعرض المواضيع المنشورة جدول به معرّف للموضوع id و contents لمحتويات الموضوع, سيشير الرابط :

http://example.com/post?id=1

لأوّل موضوع منشور في الموقع و id=2 يشير لثاني موضوع وعلى هذا المنوال. لو كان لديك خمس مواضيع غيرها :

http://example.com/post?id=2

http://example.com/post?id=3

http://example.com/post?id=4

http://example.com/post?id=5

وحذفت الموضوع الأول وأعدت ترتيب المعرفات. سيحصل خلل في موقعك. فالرابط :

http://example.com/post?id=4

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

إذا حذفت الحقل id=1 وكتبت إستعلام :

SELECT * FROM post WHERE id = 1;

فلن تعطيك قاعدة البيانات خطأ بل ستقول فقط أنّه ليس موجود.

تم تعديل هذه المشاركة بواسطة Mr.B في 9 مايو 2012 في 18:08

مواضيع مشابهة