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

لماذا فشل تجاهل الجدول يفشل في innodb والحلول

نشر في 2025-04-14
تصفح:344

Why Does ALTER IGNORE TABLE Fail with InnoDB and How to Workaround It?

mysql: فهم قيود تغيير الجدول مع innodb

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

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

كحل بديل ، يمكن للمستخدمين التفكير في تحويل الجدول إلى Myisam ، وإضافة الفهرس الفريد بتجاهل ، ثم تحويله إلى Innodb. تم تحديد هذه العملية على النحو التالي:

ALTER TABLE table ENGINE MyISAM;
ALTER IGNORE TABLE table ADD UNIQUE INDEX dupidx (field);
ALTER TABLE table ENGINE InnoDB;

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

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

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

Copyright© 2022 湘ICP备2022001581号-3