Mosi
3 سال پیش توسط Mosi مطرح شد
8 پاسخ

باگ mysql

سلام
من یه مشکلی توی پروسه دیتابیس ام پیش اومده، من موقع ساخت کلید خارجی ( foreign key ) بین دوتا جدول به یه باگی میخورم که نمیدونم چجوری باید درستش کنم.
این کدی هستش که میزنم :

alter table articles
-> add foreign key (user_id) references users(id);

اینم باگی هستش که بعد از زدن کد بهم نشون میده :

ERROR ۱۰۰۵ (HY۰۰۰): Can't create table ertebat.articles (errno: ۱۵۰ "Foreign key constraint is incorrectly formed")

کسی میدونه مشکلی از چیه کمکم کنه ؟
ممنون :*


ثبت پرسش جدید
فرشید مرادی
تخصص : noob
@eniack 3 سال پیش مطرح شد
0

سلام ، باید مقدار user_id رو از نوع unsignedInteger تعریف کنید


Mosi
تخصص : هیجی
@mostafawshe 3 سال پیش مطرح شد
0

این کارو کردم اما تاثیری نداشت و بازم همون ارور رو میداد.


فرشید مرادی
تخصص : noob
@eniack 3 سال پیش مطرح شد
0

لطفا کد قسمت مایگریشن رو قرار بدید


Mosi
تخصص : هیجی
@mostafawshe 3 سال پیش مطرح شد
0

مایگریشن کدوم قسمت کد میشه نمیدونم من :)


میلاد خسروی
تخصص : برنامه نویس بامزه
@milwad 3 سال پیش مطرح شد
0

سلام خسته نباشید
میگه foreign که نوشتی به درستی نیست کدت رو اسکرین بفرست ببینم


محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 3 سال پیش مطرح شد
0

وقتی از یک ستون بعنوان FK میخواید استفاده کنید چند تا نکته زیر رو باید مد نظر داشته باشید:

اولا ستون آیدی در جدول اصلی (در مثال شما جدول users) و همچنین ستون FK در جدول رابط (user_id) باید از نوع unsigned تعریف شده باشند.
و دوم اینکه type یا نوعش باید همخونی داشته باشه با نوعی که بعدا بعنوان FK تعریف می‌کنید (در مثال شما ستون user_id در جدول ertebat.articles)

یعنی اگر یکیش INT هست اون یکی هم باید INT باشه.
اگر یکیش TINYINT هست اون یکی هم همین طور
اگر BIGINT هست ....
به همین ترتیب.

علتش هم منطقیه دیگه. چون قراره به هم لینک باشند نمیشه نوع های مختلف داشته باشند.


Mosi
تخصص : هیجی
@mostafawshe 3 سال پیش مطرح شد
0

کدی که برای اضافه کردن کلید خارجی نوشتم اینه :

alter table articles
-> add foreign key (user_id) references users(id);


Mosi
تخصص : هیجی
@mostafawshe 3 سال پیش مطرح شد
0

این نکات رو رعایت کردم برای ساخت کلید خارجی اما بازم ارور بالا رو بهم میده.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام