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