PDA

View Full Version : حذف اطلاعات از دو جدول



alizi73
یک شنبه 28 تیر 1394, 10:47 صبح
با سلام خدمت دوستان

من دوجدول دارم ک کد ملی در هر دو جدول وجود داره میخوام براساس کد ملی اطلاعات دو جدول حذف بشن .عکس زیر جداولم و کئوری ک نوشتم با خطاش گذاشتم
ممنون میشم کمکم کنید.
http://uupload.ir/files/5xb7_untitled-2.png

golbafan
یک شنبه 28 تیر 1394, 10:48 صبح
کوئری حذف رو باید برای هر جدول جداگانه بنویسید

میتونید از تریگر هم استفاده کنید تا با حذف رکورد از جدول اول ، حذف از جدول دوم اتومات رخ بده


delete from tbl1 where x=y;
delete from tbl2 where x=y;

alizi73
یک شنبه 28 تیر 1394, 10:59 صبح
کوئری حذف رو باید برای هر جدول جداگانه بنویسید

میتونید از تریگر هم استفاده کنید تا با حذف رکورد از جدول اول ، حذف از جدول دوم اتومات رخ بده


delete from tbl1 where x=y;
delete from tbl2 where x=y;

این روش رفتم این خطا رو میده
http://uupload.ir/files/kl78_ssdsd.jpg



میشه بگی از تریگر چطوری میت.نم استفاده کنم؟؟؟

golbafan
یک شنبه 28 تیر 1394, 11:01 صبح
این خطا مربوط به کوئری نیست
کوئری رو درست بهتون گفتم

خطایی که برای شما پیش اومده مربوط میشه به کلید خارجی که استفاده کردین
احتمالا این جدول شما با یک جدول دیگه در رابطه هست و برای همین اجازه حذف نمیده

پس اول باید اون یکی جدول رو حذف کنید

برای اینکه جواب قطعی بهتون داده بشه باید کل ساختار دیتابیس رو بصورت شماتیک بزارید تا دوستان بتونن راهنمایی کنن

alizi73
یک شنبه 28 تیر 1394, 11:27 صبح
این خطا مربوط به کوئری نیست
کوئری رو درست بهتون گفتم

خطایی که برای شما پیش اومده مربوط میشه به کلید خارجی که استفاده کردین
احتمالا این جدول شما با یک جدول دیگه در رابطه هست و برای همین اجازه حذف نمیده

پس اول باید اون یکی جدول رو حذف کنید

برای اینکه جواب قطعی بهتون داده بشه باید کل ساختار دیتابیس رو بصورت شماتیک بزارید تا دوستان بتونن راهنمایی کنن


اینم جدولایی ک دیگر رابطه هستند

alizi73
یک شنبه 28 تیر 1394, 11:49 صبح
دوستان کسی نیست جواب بده ؟؟؟؟/

davidrobert
یک شنبه 28 تیر 1394, 12:23 عصر
دوست عزیز اگه کد ملی در جوال اول کلید باشه و در جدوال دوم زیر کلید باشه:قهقهه:.
شما میتونید تو ریلیشنی که بر قرار میکنید حالت delete ارتباط رو cased قرار بدید وقتی کلید حذف شود زیر کلید هم حذف میشه و خطای که کد شما میده خطای نحوی هستش در کد نویسی شما و یک کد حذف بیشتر لازم نیست بنویسید حتمالا شما در جدوال حالت ارتباطی ریلشنتوتن رو cased قرار ندادید برای delete
و اشتباه خیلی بدی تو کد نویسی تون انجام دادید امدید نوشتید.
"delete from tabel1,tabel2 where id==text1.text"
این کد نویسی قطعا ایراد دارهشما امدید گفتید جدوال 1 و جدوال 2 رو حذف کن که شناسه برابر با کادر متن هستش این یعنی چه. از لحاظ عقلی جور در نمیاد چون ممکنه کد ملی شناسه تو یکی اش1 باشه ولی تو جدوال دوم 5 باشه حالا داستان چی میشه یا دیتابیس هنگ جزی کرد به جای اینک بیاد 1 ، 2 ، 3 ذخیره کنه یک دفعه بیاد 1 ، 2 ، 3 و 1000 بزنه شناسه رو برای جدوال دوم 1،2،3،4 باشه وقتی تو ریلیشن ارتباط درست قرار بدی و چون کد ملی کلید هستش اصلی حذف شه و از همون بارکد در جدوال دوم باشه اون هم قطا پاک میشه ولی در صورتی حالت حذف رو قرار داده باشید.در ریلیشن.

alizi73
یک شنبه 28 تیر 1394, 13:55 عصر
دوست عزیز اگه کد ملی در جوال اول کلید باشه و در جدوال دوم زیر کلید باشه:قهقهه:.
شما میتونید تو ریلیشنی که بر قرار میکنید حالت delete ارتباط رو cased قرار بدید وقتی کلید حذف شود زیر کلید هم حذف میشه و خطای که کد شما میده خطای نحوی هستش در کد نویسی شما و یک کد حذف بیشتر لازم نیست بنویسید حتمالا شما در جدوال حالت ارتباطی ریلشنتوتن رو cased قرار ندادید برای delete
و اشتباه خیلی بدی تو کد نویسی تون انجام دادید امدید نوشتید.
"delete from tabel1,tabel2 where id==text1.text"
این کد نویسی قطعا ایراد دارهشما امدید گفتید جدوال 1 و جدوال 2 رو حذف کن که شناسه برابر با کادر متن هستش این یعنی چه. از لحاظ عقلی جور در نمیاد چون ممکنه کد ملی شناسه تو یکی اش1 باشه ولی تو جدوال دوم 5 باشه حالا داستان چی میشه یا دیتابیس هنگ جزی کرد به جای اینک بیاد 1 ، 2 ، 3 ذخیره کنه یک دفعه بیاد 1 ، 2 ، 3 و 1000 بزنه شناسه رو برای جدوال دوم 1،2،3،4 باشه وقتی تو ریلیشن ارتباط درست قرار بدی و چون کد ملی کلید هستش اصلی حذف شه و از همون بارکد در جدوال دوم باشه اون هم قطا پاک میشه ولی در صورتی حالت حذف رو قرار داده باشید.در ریلیشن.



دمت گرم ممنون مشکلم حل شد .
حالت دلیت رو رو cased گذاشتم درست شد.