MySQL - لا يمكن أن يكون قادرًا على إنشاء مفتاح خارجي

StackOverflow https://stackoverflow.com/questions/1761315

  •  21-09-2019
  •  | 
  •  

سؤال

عندما أقوم بتنفيذ الاستعلام أدناه ، يلقي خطأ ،

alter table `ttis`.`users` 
add constraint `FK_Role_ID` FOREIGN KEY (`ROLE_ID`) REFERENCES `roles` (`ROLE_ID`)

خطأ:

Error Code : 1005
Can't create table 'ttis.#sql-9c_8a' (errno: 150)
هل كانت مفيدة؟

المحلول

ألق نظرة على هذا المنشور: 13.6.4.4. قيود المفاتيح الخارجية والبحث عن "150". تقول هنا:

إذا قمت بإعادة إنشاء جدول تم إسقاطه ، فيجب أن يكون لديه تعريف يتوافق مع قيود المفاتيح الخارجية التي تشير إليها. يجب أن يحتوي على أسماء وأنواع الأعمدة الصحيحة ، ويجب أن يكون لها فهارس على المفاتيح المشار إليها ، كما هو مذكور سابقًا. إذا لم يتم استيفاء هذه ، فإن MySQL يعيد رقم الخطأ 1005 ويشير إلى الخطأ 150 في رسالة الخطأ.

إذا أبلغت MySQL عن رقم خطأ 1005 من عبارة إنشاء جدول ، وتشير رسالة الخطأ إلى الخطأ 150 ، فقد فشل إنشاء الجدول بسبب عدم تشكيل قيود مفتاح خارجي بشكل صحيح. وبالمثل ، إذا فشل جدول Alter ويشير إلى الخطأ 150 ، فهذا يعني أن تعريف المفتاح الخارجي سيتم تشكيله بشكل غير صحيح للجدول الذي تم تغييره. يمكنك استخدام SHANE ENGRANT INNODB STATUS لعرض شرح مفصل لأحدث خطأ مفتاح INNODB الأجنبي في الخادم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top