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

كيفية التخلص من السجلات المكررة في قاعدة بيانات MySQL باستخدام قيد مفتاح فريد؟

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

How to Eliminate Duplicate Records in a MySQL Database with a Unique Key Constraint?

إزالة السجلات المكررة من قاعدة بيانات MySQL: حل رئيسي فريد

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

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

لمعالجة هذه المشكلة، نستخدم الأمر "ALTER IGNORE TABLE" متبوعًا بشرط "ADD UNIQUE KEY". يوجه هذا الأمر MySQL إلى تجاهل الأخطاء التي قد تنشأ أثناء إضافة المفتاح الفريد. ونتيجة لذلك، يتم إسقاط جميع الصفوف المكررة التي قد تنتهك القيد الفريد بصمت، مما يؤدي إلى إزالة التكرارات بشكل فعال.

إليك صيغة الأمر التي يمكنك استخدامها:

ALTER IGNORE TABLE table ADD UNIQUE KEY idx1(title);

لاحظ أن هذا الأمر قد لا يكون متوافقًا مع جداول InnoDB في بعض إصدارات MySQL. في مثل هذه الحالات، ارجع إلى هذا المنشور للحصول على حل بديل.

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

أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3