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

كيفية إصلاح الخطأ "لا يمكن تغيير العمود المستخدم في قيد المفتاح الخارجي"؟

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

How to Fix

استكشاف الأخطاء وإصلاحها: حل الخطأ "لا يمكن تغيير العمود المستخدم في قيد المفتاح الخارجي"

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

لحل هذه المشكلة، يمكنك اتباع الخطوات التالية:

1. فهم الخطأ:

توفر رسالة الخطأ جزأين من المعلومات المهمة:

  • العمود المعني : اسم العمود الذي لا يمكن يمكن تغييرها.
  • قيد المفتاح الخارجي: اسم قيد المفتاح الخارجي الذي يشير إلى العمود.

2. فحص بيان CREATE TABLE:

افحص بيان CREATE TABLE الأصلي لتحديد قيد المفتاح الخارجي وتفاصيله. في السيناريو المقدم، يُسمى القيد "fk_fav_food_person_id"، وهو يشير إلى عمود "person_id" في جدول "favorite_food".

3. تعطيل عمليات التحقق من المفاتيح الخارجية (تحذير!):

لتعديل العمود المتضمن في قيد المفتاح الخارجي، يمكنك تعطيل عمليات التحقق من المفاتيح الخارجية مؤقتًا. قد تكون هذه عملية خطيرة، لذا من المهم توخي الحذر والحصول على نسخة احتياطية من قاعدة البيانات الخاصة بك. لتعطيل عمليات فحص المفاتيح الخارجية، استخدم العبارة التالية:

SET FOREIGN_KEY_CHECKS = 0;

4. إجراء التعديل:

بمجرد تعطيل عمليات التحقق من المفتاح الخارجي، يمكنك متابعة التغيير المطلوب. في المثال المقدم، يمكن الآن تعديل عمود person_id إلى قيمة متزايدة تلقائيًا باستخدام العبارة التالية:

ALTER TABLE person MODIFY person_id SMALLINT UNSIGNED AUTO_INCREMENT;

5. إعادة تمكين عمليات فحص المفاتيح الخارجية:

بعد إجراء التغييرات اللازمة، تأكد من إعادة تمكين عمليات فحص المفاتيح الخارجية للحفاظ على سلامة قاعدة البيانات الخاصة بك:

SET FOREIGN_KEY_CHECKS = 1;

ملاحظة تحذيرية:

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

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

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

Copyright© 2022 湘ICP备2022001581号-3