PDA

View Full Version : حرفه ای: ایجادrelationship بین دو جدول



yeksib
سه شنبه 26 دی 1391, 15:06 عصر
من چطوری میتونم هنگامی که یک رکورد از جدول شماره یک حذف شد ، تمامی رکورد های از جدول شماره 2 که با جدول شماره یک رابطه دارند رو حذف کنم؟
توی جدول شماره2 idu همون id رکورد مورد نظر توی جدول شماره یک هستش! شاید توی جدول 2 ده ها بار این id تکرار بشه و موقع حذف باید تمام رکورد ها حذف بشن!
میتونم این کار رو انجام بدم؟

reza10wert
سه شنبه 26 دی 1391, 15:39 عصر
بله
با کوئری میتونید جاهایی که idu جدول شماره 2 برابر id جدول شماره یک هست را حذف کنید
موفق باشید

yeksib
سه شنبه 26 دی 1391, 15:51 عصر
نه دوست من ! میخواهم با mysql این کار را انجام بدم.یعنی این کار را با کد نویسی توی mysql بردوش خودش بندازم تا سریعتر و ایمن تر کار انجام بشه!

mojtaba.baghban
سه شنبه 26 دی 1391, 15:54 عصر
ابتدا باید با foreign key دو جدول رو بهم ارتباط بدین و on delete رو برابر cascade قرار بدین

create table2
(
idu int references table1(id) on delete cascade
)

البته منmysql کار نمی‌کنم رفتم سراغ postgresql. روش همینه حالا اگه سینتکس اشتباهه خودتون درستش کنید

yeksib
سه شنبه 26 دی 1391, 15:59 عصر
الان foreign key من میشه همون idu و id ؟این دوتا باید باهم relate بشوند؟

mojtaba.baghban
سه شنبه 26 دی 1391, 16:07 عصر
آره دیگه. تو کدی که نوشتم با هم relate شدن دیگه.
ولی استفاده از cascade چندان توصیه نمیشه چون ممکنه یه اشتباه باعث از دست رفتن داده‌هامون بشه.
بهتون توصیه می‌کنم که یه وقتی هم واسه یادگیری mysql یا هر پایگاه داده دیگه‌ای هم کنار بذارین