با سلام
کسی میتونه منو راهنمایی کنه؟
Printable View
با سلام
کسی میتونه منو راهنمایی کنه؟
وقتی میخام join کنم این پیغام خطارو میده :
نقل قول:
Error
SQL query:
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] `customers` ADD FOREIGN KEY ( `customerid` ) REFERENCES `laptop`.`orders` (
`customerid`
) ON [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] RESTRICT ON [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] RESTRICT ;
MySQL said: [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
#1452 - Cannot add or update a child row: a foreign key constraint fails (`laptop`.<result 2 when explaining filename '#sql-a08_5b'>, CONSTRAINT `#sql-a08_5b_ibfk_1` FOREIGN KEY (`customerid`) REFERENCES `orders` (`customerid`))
سلام
این که شما انجام دادید جوین کردن نیست. این کلید خارجی به جدولها اضافه میکنه که دو تا جدول رو با هم مرتبط میکنه. برای جوین کردن لزوماً نیاز نیست کلید خارجی وجود داشته باشه. ضمن اینکه کلید خارجی در همه انجین های mysql قابل استفاده نیست. مهمترینش myisam هست که کلید خارجی رو نادیده میگیره
برای جوین کردن اینطور که از کدتون میشه برداشت کرد میتونید از این کوئری استفاده کنید (فیلدها رو باید مطابق نیازتون ویرایش کنید و احتمالاً WHERE هم اضافه کنید...):
کد:SELECT t1.*,t2.* FROM orders AS t1 JOIN customers AS t2 ON (t1.customerid=t2.customerid);
خب من میخام دوتا جدولو بهم ربط بدم که آخرش وقتی دیاگرامشو بیارم جدولا با یک خط به یکدیگر متصل باشن .
اینو تا sql server انجام دادم ولی اینجا نمیشه
خوب پس باید چند نکته رو در نظر بگیرید:
اول اینکه انجینی که استفاده میکنید باید InnoDB باشه.
بعد هم چک کنید که نوع فیدلها در هر دو جدول یکسان باشه.
در نهایت هم بهتره که جدول ها خالی باشه. چون اگر خالی نباشه و اطلاعاتی که داخلش هست معتبر نباشه (مثلاً یک کلید استفاده شده باشه که در جدول مرجع وجود نداشته باشه) همین ارور رو که گذاشتید میده و کلید خارجی اضافه نمیشه.
اگر به هر دلیلی نمیتونید جدول رو خالی کنید باید چک کنید که همه رکوردهای جدولی که کلید خارجی داره معتبر باشند.
خیلی خیلی ممنوننقل قول:
من همه مواردو درست انجام داده بودم فقط جدولم چون پر بود این ارور رو میداد. جداولو خالی کردم درست شد.
فقط یک سوال دیگه تو my sql چطوری دیاگرامشو ببینیم جوری که ارتباط جداولو بهم نشون بده تو sql server انجام دادم ولی my sql نمیدونم کجاست؟
mysql فقط سروره و gui نداره
برای رابط گرافیکی میتونید از نرم افزارهای دیگه استفاده کنید. من از navicat استفاده میکنم. فکر میکنم mysql workbench هم چنین امکانی داشته باشه