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

لماذا يظهر لي خطأ MySQL 1022: \"لا أستطيع الكتابة؛ مفتاح مكرر في الجدول\" على الرغم من أنني أملك مفتاحًا واحدًا فقط؟

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

 Why Am I Getting MySQL Error 1022: \

خطأ MySQL 1022: تضارب في أسماء المفاتيح الخارجية

أثناء محاولة إنشاء جدول باستخدام MySQL، تواجه خطأ 1022: "لا يمكن الكتابة؛ مفتاح مكرر في الجدول." الجانب الغريب هو أن الجدول يحدد مفتاحًا واحدًا فقط، ولكن الخطأ يستمر.

بعد التحقيق، يبدو أن مقتطفًا محددًا داخل تعريف الجدول يؤدي إلى حدوث الخطأ:

CONSTRAINT `error_id`
FOREIGN KEY (`error_id` )
REFERENCES `mydb`.`errors` (`error_id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,

بينما توجد تعريفات مفاتيح خارجية مماثلة في جداول أخرى دون مشكلة، تكمن المشكلة في اسم المفتاح الخارجي: error_id.

السبب الجذري:

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

الحل:

لحل الخطأ، ما عليك سوى إعطاء الأمر المفتاح الخارجي في السؤال اسم مختلف. على سبيل المثال، يمكنك تسميته fk_error_id. سيؤدي هذا إلى تمييزه عن أي مفتاح خارجي آخر في النموذج وسيسمح لـ MySQL بإنشاء الجدول بنجاح.

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

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

Copyright© 2022 湘ICP备2022001581号-3