یک ماشه SQL یک روش ذخیره شده ویژه است که هنگام انجام اقدامات خاص در یک پایگاه داده اجرا می شود. بیشتر محرک های بانک اطلاعاتی هنگام ایجاد تغییرات در داده های جدول ، برای اجرای آن تعریف می شوند. ماشه ها را می توان به جای یا بعد از DML یا بعد از DML (زبان دستکاری داده) مانند درج ، به روزرسانی و حذف تعریف کرد.
محرک ها به طراح پایگاه داده کمک می کنند تا اطمینان حاصل کند که برخی از اقدامات ، مانند حفظ پرونده حسابرسی ، بدون در نظر گرفتن اینکه کدام برنامه یا کاربر در داده ها تغییراتی ایجاد می کند ، انجام می شود.
این برنامه ها از زمان یک رویداد ، مانند اضافه کردن یک رکورد به یک جدول ، به عنوان محرک نامیده می شوند.
محرک ها و پیاده سازی های آنها مخصوص فروشندگان پایگاه داده است. در این مقاله ما روی Microsoft SQL Server تمرکز خواهیم کرد. با این حال ، مفاهیم در Oracle و MySQL یکسان یا مشابه هستند.
توجه: تمام نمونه های این درس بر اساس استودیوی مدیریت Microsoft SQL Server و پایگاه داده AdventureWorks2012 ساخته شده است. با استفاده از راهنمای من با استفاده از SQL Server می توانید با استفاده از این ابزارهای رایگان شروع کنید.
محرک ها می توانند بعد از یا به جای یک عمل DML رخ دهند. محرک ها با اقدامات DML DATABASE درج ، به روزرسانی و حذف همراه هستند. هنگام اجرای این اقدامات در یک جدول خاص ، محرک ها برای اجرای آن تعریف می شوند.
پس از اتمام اقدامات DML ، مانند درج ، ماشه پس از آن اجرا می شود. در اینجا برخی از ویژگی های کلیدی After Triggers آورده شده است:
به جای محرک ها ، همانطور که از نام آنها پیداست ، به جای عمل DML که باعث آتش سوزی آنها شد ، اجرا شود. مواردی که باید هنگام استفاده به جای محرک ها در نظر بگیرید عبارتند از:
محرک ها برای دسترسی به ردیف های تحت تأثیر اقدامات پایگاه داده ، از دو شیء ویژه پایگاه داده ، درج و حذف شده استفاده می کنند. در محدوده یک ماشه ، اشیاء درج شده و حذف شده دارای ستون های مشابه جدول Trigger هستند.
جدول درج شده شامل تمام مقادیر جدید است. در حالی که ، جدول حذف شده حاوی مقادیر قدیمی است. در اینجا نحوه استفاده از جداول آورده شده است:
یک ماشه SQL برای یک جدول خاص و یک یا چند رویداد تعریف شده است. در اکثر سیستم های مدیریت پایگاه داده فقط می توانید یک ماشه را در هر جدول تعریف کنید.
در زیر مثالی از پایگاه داده AdventureWorks2012 آورده شده است.
متوجه خواهید شد که نحو برای یک ماشه SQL بسیار شبیه به روش ذخیره شده است. در حقیقت ، ماشه از همان زبان برای اجرای منطق خود مانند روشهای ذخیره شده استفاده می کند. در MS SQL ، این T-SQL است. در حالی که در اوراکل PL/SQL است.
در اینجا چند قسمت مهم برای یک ماشه وجود دارد:
در اینجا برخی از کاربردهای متداول برای محرک ها وجود دارد:
برای ردیابی تغییرات در جداول می توانید از محرک ها استفاده کنید. در مثال بالا ، تغییراتی در جدول کار ایجاد شده است.
به طور معمول هنگام ایجاد مسیرهای حسابرسی ، بعد از محرک ها استفاده خواهید کرد.
ممکن است فکر کنید که این کار زائد است ، زیرا بسیاری از تغییرات در مجلات پایگاه داده وارد شده اند ، اما سیاهههای مربوط برای بازیابی بانک اطلاعاتی است و توسط برنامه های کاربر به راحتی قابل دسترسی نیست. جدول TransactionHistory به راحتی ارجاع شده است و می تواند در گزارش های کاربر نهایی گنجانیده شود.
قبل از انجام یک عمل DML می توان از محرک های SQL برای بازرسی کلیه داده ها استفاده کرد. شما می توانید به جای محرک ها برای "رهگیری" عملیات DML در انتظار ، اعمال هرگونه قوانین تجاری و در نهایت انجام معامله استفاده کنید.
یک قانون تجاری مثال ممکن است این باشد که وضعیت مشتری به این صورت تعریف شده است:
به جای ماشه می تواند برای بررسی وضعیت مشتری هر بار که یک رکورد مشتری اضافه یا اصلاح شود ، تعریف شود. بررسی وضعیت شامل ایجاد مبلغی از کلیه خریدهای مشتریان و اطمینان از وضعیت جدید با مجموع 12 ماه گذشته خرید است.
از محرک ها می توان برای محاسبه مقادیر ستون استفاده کرد. به عنوان مثال ، برای هر مشتری ممکن است بخواهید یک ستون TotalSales را در سوابق مشتری حفظ کنید. البته ، برای اینکه این موضوع دقیق بماند ، باید هر بار که فروش انجام می شد ، به روز شود.
این کار می تواند با استفاده از یک ماشه After Trigger در درج ، به روزرسانی و حذف اظهارات جدول فروش انجام شود.
به طور کلی ، توصیه من این است که از استفاده از محرک ها خودداری کنید مگر اینکه کاملاً لازم باشد.
شما باید از استفاده از محرک ها به جای ویژگی های ساخته شده خودداری کنید. به عنوان مثال ، به جای اینکه به محرک ها برای اجرای یکپارچگی مرجع اعتماد کنید ، بهتر است از روابط استفاده کنید.
در اینجا دلایلی آورده شده است که من از آنها دور می شوم:
این سایت از Akismet برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه داده های نظر شما پردازش می شود.
Pingback: بخش عمده SQL DB چیست؟- SQL ضروری Reef می گوید:"در مثال ما در بالا ، تغییراتی در جدول Workorder یک جدول معاملات Transactory ثبت شده است."شما به یک "در" درست پس از کلمه "ضبط شده" نیاز دارید.
برچسب : نویسنده : علیرام نورایی بازدید : 42