PDA

نسخه کامل مشاهده نسخه کامل : فرق بین trigger و asseration در چیست؟



iranch
12-04-2014, 23:05
درود.
عزیزان فرق بین trigger و asseration در چیست؟

iranch
26-04-2014, 14:57
..................

L͠øneWolf
26-04-2014, 17:11
TRIGGER کد پایگاه داده ای هست که قبل یا بعد از INSERT، DELETE یا UPDATE اجر می شه. مثلا اگه بخوام قبل از آپدیت کردن رکورد مشتری رکورد قبلی رو ذخیره کنم:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

CHECK CONSTRAINT قبل از اعمال تغییرات توی رکوردهای یه جدول، بررسی می کنه که محدودیت های مورد نظر ارضا می شن یا نه و اگه ارضا نشدن خطا می ده. مثلا اگه بخوام باقی مانده حساب هر مشتری هیچ وقت کمتر از 100 نشه:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

تفاوت CHECK و ASSERTION کمی ظریف تر هست.

ASSERTION محدودیتی هست که به کل اسکیما اعمال می شه، و به خاطر ملاحظات کارایی اغلب پایگاه داده های معروف پیاده سازیش نمی کنن. TRIGGER می تونه توی بعضی کارها می تونه جای ASSERTION رو بگیره.

پ.ن. یه اشتباه رایج اینه که TRIGGER و CHECK به جای هم استفاده می شن. مثلا اگر تمام مشتری ها برای افتتاح حساب باید 10 هزار تومان موجودی داشته باشن ولی بعد از افتتاح، موجودی می تونه کمتر از این مقدار هم باشه، باید از TRIGGER استفاده بشه. چون بررسی محدودیت تنها هنگام INSERT کردن لازمه.

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]