راکت

باگ mysql

8 پاسخ

سلام
من یه مشکلی توی پروسه دیتابیس ام پیش اومده، من موقع ساخت کلید خارجی ( 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")

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

ثبت پرسش جدید

پاسخ‌ها

8
فرشید مرادی
فرشید مرادی
@eniack

تخصص: noob

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

Mosi
Mosi
@mostafawshe

تخصص: هیجی

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

شاید پاسخ شما همین‌جا باشد

فرشید مرادی
فرشید مرادی
@eniack

تخصص: noob

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

Mosi
Mosi
@mostafawshe

تخصص: هیجی

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

میلاد خسروی
میلاد خسروی
@milwad

تخصص: برنامه نویس بامزه

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

محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

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

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

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

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

Mosi
Mosi
@mostafawshe

تخصص: هیجی

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

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

Mosi
Mosi
@mostafawshe

تخصص: هیجی

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

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

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