"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > إضافة معرف تسلسلي إلى جداول MySQL بناءً على تاريخ الإنشاء: دليل خطوة بخطوة

إضافة معرف تسلسلي إلى جداول MySQL بناءً على تاريخ الإنشاء: دليل خطوة بخطوة

تم النشر بتاريخ 2024-11-09
تصفح:889

Adding a Serial ID to MySQL Tables Based on Creation Date: A Step-by-Step Guide

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

المشكلة

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

الحل: عملية من ثلاث خطوات

يمكننا تحقيق ذلك باستخدام مجموعة من أوامر MySQL. وإليك العملية خطوة بخطوة:

الخطوة 1: إضافة العمود الجديد

أولاً، نحتاج إلى إضافة عمود user_serial_number الجديد إلى جدولنا:

ALTER TABLE users ADD COLUMN user_serial_number INT;

يضيف هذا الأمر عمودًا صحيحًا جديدًا باسم user_serial_number إلى جدول المستخدمين لدينا.

الخطوة 2: ملء العمود الجديد

الآن بعد أن أصبح لدينا العمود الجديد، نحتاج إلى ملؤه بالقيم بناءً على ترتيب تاريخ التسجيل:

SET @row_number = 0;
UPDATE users 
SET user_serial_number = (@row_number:=@row_number   1)
ORDER BY registration_date;

دعونا نقسم هذا:

  • نقوم بتهيئة رقم الصف المتغير إلى 0.
  • نقوم بعد ذلك بتحديث جميع الصفوف في جدول المستخدمين، مع ضبط user_serial_number على قيمة متزايدة.
  • يضمن الأمر ORDER BY Registration_date أنه تم تعيين المعرفات بناءً على ترتيب تاريخ التسجيل.

الخطوة 3: تعيين الزيادة التلقائية

أخيرًا، نحتاج إلى تعيين هذا العمود كتزايد تلقائي للإدراجات المستقبلية:

ALTER TABLE users 
MODIFY COLUMN user_serial_number INT AUTO_INCREMENT,
ADD PRIMARY KEY (user_serial_number);

يعدل هذا الأمر عمود user_serial_number ليتزايد تلقائيًا ويعينه كمفتاح أساسي.

اعتبارات هامة

  1. الترتيب الافتراضي: بشكل افتراضي، يتم فرز جملة ORDER BY الخاصة بـ MySQL بترتيب تصاعدي (ASC). وهذا يعني أن السجلات الأقدم ستحصل على أرقام تسلسلية أقل، بينما ستحصل السجلات الأحدث على أرقام أعلى. إذا كنت تريد عكس ذلك، يمكنك استخدام ORDER BY Registration_date DESC في الخطوة 2.

  2. الإدخالات المستقبلية : بعد هذه العملية، ستحصل السجلات الجديدة ببساطة على العدد الصحيح التالي المتاح باعتباره رقم_الرقم_التسلسلي للمستخدم، بغض النظر عن قيمة تاريخ_التسجيل الخاصة بها. ينطبق الترتيب فقط على العدد الأولي للعمود.

  3. المفتاح الأساسي : إذا كان user_serial_number يحتاج إلى أن يكون المفتاح الأساسي (كما في الخطوة 3)، فتأكد من إزالة أي مفتاح أساسي موجود قبل إضافته إلى user_serial_number.

  4. الأداء: بالنسبة للجداول الكبيرة، يمكن أن تستغرق هذه العملية وقتًا طويلاً وقد تؤدي إلى قفل الجدول. فكر في تشغيل هذا خارج ساعات الذروة.

  5. التفرد: تأكد من أن قيم تاريخ التسجيل فريدة لتجنب أي مشكلات محتملة أثناء عملية تعيين المعرف.

الحفاظ على ترتيب الإدخالات المستقبلية

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

خاتمة

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

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

باتباع هذه الخطوات، يمكنك إضافة بُعد جديد مفيد لبياناتك الحالية، وفتح إمكانيات جديدة للاستعلام عن قاعدة البيانات الخاصة بك وتنظيمها.

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/manojspace/adding-a-serial-id-to-mysql-tables-based-on-creation-date-a-step-by-step-guide-2em3؟ 1. في حالة وجود أي انتهاك، يرجى التواصل مع [email protected] لحذفه.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3