مع نمو قواعد البيانات وتطورها، غالبًا ما نجد أنفسنا بحاجة إلى إضافة أعمدة جديدة أو تعديل الهياكل الحالية. أحد السيناريوهات الشائعة هو الحاجة إلى إضافة معرف تسلسلي إلى جدول موجود، خاصة عندما نريد أن يعكس هذا المعرف الترتيب الزمني لإنشاء السجل. في منشور المدونة هذا، سنتعرف على عملية إضافة معرف تسلسلي متزايد تلقائيًا إلى جدول MySQL، مرتبة حسب عمود تاريخ الإنشاء.
تخيل أن لديك جدول يسمى المستخدمين في قاعدة بيانات MySQL الخاصة بك. يحتوي هذا الجدول على أعمدة مختلفة بما في ذلك عمود التسجيل_التاريخ والوقت الذي يسجل وقت تسجيل كل مستخدم. الآن، تريد إضافة عمود جديد user_serial_number الذي سيكون بمثابة عدد صحيح متزايد تلقائيًا، ولكنك تريد أن يستند التعيين الأولي لهذه المعرفات إلى ترتيب تاريخ التسجيل.
يمكننا تحقيق ذلك باستخدام مجموعة من أوامر MySQL. وإليك العملية خطوة بخطوة:
أولاً، نحتاج إلى إضافة عمود user_serial_number الجديد إلى جدولنا:
ALTER TABLE users ADD COLUMN user_serial_number INT;
يضيف هذا الأمر عمودًا صحيحًا جديدًا باسم user_serial_number إلى جدول المستخدمين لدينا.
الآن بعد أن أصبح لدينا العمود الجديد، نحتاج إلى ملؤه بالقيم بناءً على ترتيب تاريخ التسجيل:
SET @row_number = 0; UPDATE users SET user_serial_number = (@row_number:=@row_number 1) ORDER BY registration_date;
دعونا نقسم هذا:
أخيرًا، نحتاج إلى تعيين هذا العمود كتزايد تلقائي للإدراجات المستقبلية:
ALTER TABLE users MODIFY COLUMN user_serial_number INT AUTO_INCREMENT, ADD PRIMARY KEY (user_serial_number);
يعدل هذا الأمر عمود user_serial_number ليتزايد تلقائيًا ويعينه كمفتاح أساسي.
الترتيب الافتراضي: بشكل افتراضي، يتم فرز جملة ORDER BY الخاصة بـ MySQL بترتيب تصاعدي (ASC). وهذا يعني أن السجلات الأقدم ستحصل على أرقام تسلسلية أقل، بينما ستحصل السجلات الأحدث على أرقام أعلى. إذا كنت تريد عكس ذلك، يمكنك استخدام ORDER BY Registration_date DESC في الخطوة 2.
الإدخالات المستقبلية : بعد هذه العملية، ستحصل السجلات الجديدة ببساطة على العدد الصحيح التالي المتاح باعتباره رقم_الرقم_التسلسلي للمستخدم، بغض النظر عن قيمة تاريخ_التسجيل الخاصة بها. ينطبق الترتيب فقط على العدد الأولي للعمود.
المفتاح الأساسي : إذا كان user_serial_number يحتاج إلى أن يكون المفتاح الأساسي (كما في الخطوة 3)، فتأكد من إزالة أي مفتاح أساسي موجود قبل إضافته إلى user_serial_number.
الأداء: بالنسبة للجداول الكبيرة، يمكن أن تستغرق هذه العملية وقتًا طويلاً وقد تؤدي إلى قفل الجدول. فكر في تشغيل هذا خارج ساعات الذروة.
التفرد: تأكد من أن قيم تاريخ التسجيل فريدة لتجنب أي مشكلات محتملة أثناء عملية تعيين المعرف.
إذا كنت تريد أن تحافظ عمليات الإدخال المستقبلية دائمًا على ترتيب بناءً على تاريخ التسجيل، فستحتاج إلى تنفيذ هذا المنطق في التطبيق الخاص بك أو استخدام مشغلات MySQL. ومع ذلك، قد يكون هذا الأمر معقدًا وقد يؤثر على الأداء، لذا فكر في حالة الاستخدام الخاصة بك بعناية قبل تنفيذ مثل هذا الحل.
تعد إضافة معرف تسلسلي إلى جدول MySQL موجود بناءً على عمود التاريخ والوقت عملية مباشرة يمكن إنجازها باستخدام بعض أوامر SQL. يمكن أن تكون هذه التقنية مفيدة بشكل خاص لتحليل البيانات، أو إنشاء معرفات فريدة، أو إنشاء ترتيب زمني واضح في بياناتك.
تذكر أنه على الرغم من أن هذه العملية تعمل بشكل جيد مع المحتوى الأولي للمعرف التسلسلي، فإن الحفاظ على هذا الترتيب للإدخالات المستقبلية يتطلب دراسة إضافية وربما حلولاً أكثر تعقيدًا. قم دائمًا باختبار هذه العمليات على نسخة من بياناتك قبل تشغيلها على قاعدة بيانات الإنتاج.
باتباع هذه الخطوات، يمكنك إضافة بُعد جديد مفيد لبياناتك الحالية، وفتح إمكانيات جديدة للاستعلام عن قاعدة البيانات الخاصة بك وتنظيمها.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3