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

هل يوجد طريقة لتحديث ترتيب صفوف في جدول؟

مغلق
بدأه Xacker في 2 سبتمبر 2006 · 10 رد · 1,655 مشاهدة · في قواعد بيانات MySQL
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

عندما تستخدم AUTO_INCREMENT لاحد الاعمدة وليكن باسم id فان كل record جديد سياخذ رقم اعلى بمقدار 1 بشكل افتراضي

لكن عند حذف record ما من القاعدة فان الـ records التي تليه ستبقى محافظة على قيمتها واي زيادة لن تاخذ بالحسبان حذف هذا الـ record

فهل هناك طريقة لاعادة اسناد الترتيب مرة اخرى بحيث يعيد منح كل record حسب ترتيبها قيما عددية متتالية؟

فيما يلي مثال للتوضيح:

.-----------------------.

| ID |	Names	|

-------------------------

| 1  |  zack		  |

| 2  | george		|

| 3  | mitchel	   |

| 4  | melany	   |

|__ |___________|



بحذف السطر 3

.-----------------------.

| ID |	Names	|

-------------------------

| 1  |  zack		  |

| 2  | george		|

| 4  | melany	   |

|__ |___________|

احتاج اجابة اكيدة, لا يلابسها اي شك وليست تخمين. شكرا جزيلا

تم تعديل هذه المشاركة بواسطة Xacker في 2 سبتمبر 2006 في 16:38

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#2

غير ممكن

460.gif

#3

شكرا على اجابة مباشرة :)

هناك شئ فكرت به, غيرعملي 100% (او لنقل, غير رياضي :P) لكنه يعمل لو لا يوجد حل اخر وهي في اسقاط drop عمود ID بالكامل ومن ثم انشائه مرة اخرى مع منحه AUTO_INCREMENT .. غير رياضية لان العمود يجب ان يكون موجودا في اخر الجدول كي لا يتم حذفه من البداية مثلا ومن ثم انشاؤه في النهاية وبالتالي جلب البيانات من الجدول سيصبح خاطئ وفقا للترتيب الجديد.

السلام عليكم

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#4

توصلت لطريقة تستطيع تلافي هذه المشكلة ولكن على SQL Server في هذا الموضوع:

Auto Identity أم GUID كمفتاح أساسي؟, أيهما تفضل؟

ربما قد تفيد *-)

فكر بطريقة أخرى

#5

هناك حلين:

استعمال جدول وادراج الارقام المنتهية منه للاستعمالها بالمستقبل.

اعادة ترتيب الصفوف، باستعمال السورت

مع السلامة

#6

هل لي أن أسأل لماذا تريد عمل هذا؟!

#7

أخي حسام كان ذلك من اجل التخفيف من هدر الأرقام في قاعدة البيانات .

بحيث يكون تلسلس الأرقام ولا يكون ترقيم العموم بشكل متقطع نتيجة لحذف بعض السجلات .

#8

هدف سيء،، لا تخف الأرقام لا تهدر! الأرقام دائما 4 بايت سواء كان الرقم 10 أو كان 123123214 ولا يوجد هدر!

وإذا الأرقام نفدت فأعتقد أن النظام سوف يعيد استخدام الأرقام التي حذفت.

بالمناسبة،، إعادة ترتيب الأرقام يخلق سوء تنسيق،، لا أدري ماذا ترمز إليه الأرقام،، لكن على فرض أن رقمي الجامعي هو 146 وعلى افتراض أن أحد الطلاب انسحب من الجامعة،، فمن غير المعقول أن يتغير رقمي إلى 145 مثلا!!

هذا يعتمد على ماذا تريد من هذا الترتيب بالضبط،، الشيء الذي أحب أن أعرفه.

#9
حسام الملحم أبومازن كتب:
هذا يعتمد على ماذا تريد من هذا الترتيب بالضبط،، الشيء الذي أحب أن أعرفه.

أرجو منك مراجعة الرابط الذي وضعته في ردي السابق على هذا الموضوع.

فكر بطريقة أخرى

#10

هي فكرة كانت للأخ Xacker :

لمحاولة الحفاض على تسلسل الترقيم التلقائي .

أنا ايضا لا احبذ ان يتم عمل ذلك ولكن بحسب طبيعة العمل وان كان كما ذكرت في مثال الجامعات .

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

ولكن قد تكون في ارقام اخرى ليس لها حساسية مثل الجامعات او غيرة .

الفكرة ايضا تتمثل في تسريع البحث . بالبحث في الأرقام الصغيرة اسهل من الكبيرة .

#11

walcom... وضعت ردا هناك،،

وأحاول الآن التفكير في ذلك ،، لكني لم أرى الفائدة حتى الآن!

هذا الموضوع مغلق.

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…