درود.
عزیزان فرق بین trigger و asseration در چیست؟
Printable View
درود.
عزیزان فرق بین trigger و asseration در چیست؟
..................
TRIGGER کد پایگاه داده ای هست که قبل یا بعد از INSERT، DELETE یا UPDATE اجر می شه. مثلا اگه بخوام قبل از آپدیت کردن رکورد مشتری رکورد قبلی رو ذخیره کنم:
CHECK CONSTRAINT قبل از اعمال تغییرات توی رکوردهای یه جدول، بررسی می کنه که محدودیت های مورد نظر ارضا می شن یا نه و اگه ارضا نشدن خطا می ده. مثلا اگه بخوام باقی مانده حساب هر مشتری هیچ وقت کمتر از 100 نشه:کد:CREATE TRIGGER triggerName
AFTER UPDATE
INSERT INTO CustomerLog (blah, blah, blah)
SELECT blah, blah, blah FROM deleted
تفاوت CHECK و ASSERTION کمی ظریف تر هست.کد:ALTER TABLE accounts ADD CONSTRAINT CK_minimumBalance
CHECK (balance >= 100)
ASSERTION محدودیتی هست که به کل اسکیما اعمال می شه، و به خاطر ملاحظات کارایی اغلب پایگاه داده های معروف پیاده سازیش نمی کنن. TRIGGER می تونه توی بعضی کارها می تونه جای ASSERTION رو بگیره.
پ.ن. یه اشتباه رایج اینه که TRIGGER و CHECK به جای هم استفاده می شن. مثلا اگر تمام مشتری ها برای افتتاح حساب باید 10 هزار تومان موجودی داشته باشن ولی بعد از افتتاح، موجودی می تونه کمتر از این مقدار هم باشه، باید از TRIGGER استفاده بشه. چون بررسی محدودیت تنها هنگام INSERT کردن لازمه.
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]