دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۱۰
  • فروردین

جلسه ۱۷ : Triggers در PL / SQL

  • دسته‌بندی‌ها :
جلسه ۱۷ : Triggers در PL / SQL
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه

      با عرض سلام و خسته نباشید خدمت کاربران محترم سایت آموزشی پی وی لرن. و کاربرانی که آموزش کامل  PL/SQL را دنبال می کنند. در این پست آموزشی ما در مورد triggers در PL / SQL ( راه اندازی در PL / SQL ) صحبت خواهیم کرد. برنامه های ذخیره شده در triggers در PL / SQL می شود ،که به طور خودکار اجرا می شوند و یا اخراج در زمانی که برخی از وقایع رخ می دهد. در واقع عملگرها در واکنش به هر یک از رویدادهای زیر نوشته شده اند.

      • بیانیه پایگاه داده (DML) (DELETE، INSERT، یا UPDATE)
      • تعریف پایگاه داده (DDL) (CREATE، ALTER، DROP).
      • عملیات پایگاه داده (SERVERERROR، LOGON، LOGOFF، STARTUP، یا SHUTDOWN).

      ( triggers در PL / SQL ) راه اندازی در PL / SQL می تواند بر روی جدول، نمایش، طرح، یا پایگاه داده که به رویداد مرتبط است تعریف شده است.

      مزایای triggers

      راه اندازی در PL / SQL می تواند برای اهداف زیر نوشته شود:

      • تولید برخی مقادیر ستون مشتق شده به صورت خودکار
      • اجرای یکپارچگی ارجاعی
      • ثبت رویداد و ذخیره اطلاعات در دسترسی به جدول
      • حسابرسی
      • تکثیر همزمان از جداول
      • اعمال مجوزهای امنیتی
      • جلوگیری از معاملات نامعتبر

      ایجاد عوامل مؤثر

      نحوه ایجاد یک triggers در PL / SQL

      مثال : 

      • CREATE [OR REPLACE] TRIGGER trigger_name – یک ماژول موجود را با نام trigger ایجاد می کند یا جایگزین می کند.
      • {قبل از | پس از | INSTEAD OF} این مشخص میکند زمانی که triggers در PL / SQL اجرا شود. clause INSTEAD برای ایجاد راه اندازی در PL / SQL در یک دید استفاده می شود.
      • {INSERT [OR] | تکمیلی [OR] | DELETE}  این عملیات DML را مشخص می کند.
      • [OF col_name] : این نام ستون را مشخص می کند که به روز می شود.
      • [ON table_name] : این نام جدول مربوط به راه اندازی در PL / SQL را مشخص می کند.
      • [اشاره به OLD AS O جدید به عنوان n] : این به شما اجازه می دهد برای ارزیابی مقادیر جدید و قدیمی برای اظهارات مختلف DML، مانند INSERT، UPDATE و DELETE.
      • [برای هر ردیف] : این یک راه اندازی در PL / SQL ردیف را تعیین می کند، یعنی triggers در PL / SQL برای هر ردیف تاثیر می گذارد. در غیر این صورت، ماژول فقط یک بار اجرا خواهد شد، هنگامی که دستور SQL اجرا می شود، ماژول سطح جدول نامیده می شود.
      • WHEN (condition) : این یک شرط برای ردیف هایی است که triggers در PL / SQL برای آنها آتش می زند.

      این بند فقط برای محرک های سطر سطح معتبر است.

      مثال

      برای شروع از جدول مشتری که ما در جلسه های قبلی ایجاد کرده ایم استفاده می کنیم.

      مثال : 

      برنامه زیر یک ماژول ردیف سطح برای جدول مشتری ایجاد می کند که می تواند عملیات INSERT یا UPDATE یا DELETE انجام شده در جدول CUSTOMERS باشد.

      این راه اندازی در PL / SQL تفاوت های حقوق و دستمزد بین ارزش های قدیمی و ارزش های جدید را نشان می دهد.

      مثال : 

      هنگامی که کد بالا در SQL  فوری اجرا می شود، نتیجه زیر را تولید می کند.

      مثال : 

      نکات زیر باید در اینجا مورد توجه قرار گیرد.

      • مراجع OLD و NEW برای triggers سطح، در دسترس نیستند، بلکه شما می توانید از آنها برای triggers سطح استفاده کنید.
      • اگر می خواهید پرس و جو از جدول در همان triggers ، پس از کلمه کلیدی بعد از کلمه استفاده کنید.

      چرا که باعث می شود جدول را پرس و جو یا دوباره آن را تغییر دهید تنها پس از تغییرات اولیه اعمال می شود و جدول در حالت ثابت است.

      • triggers فوق به گونه ای نوشته شده است که قبل از هر عمل DELETE یا INSERT یا UPDATE روی میز آتش می گیرد، اما شما می توانید triggers خود را در عملیات تک یا چند استفاده کنید، به عنوان مثال قبل از حذف، هر زمان یک رکورد با استفاده از عمل DELETE در جدول حذف خواهد شد.

      راه اندازی در PL / SQL

      اجازه دهید ما برخی از عملیات DML را در جدول CUSTOMERS انجام دهیم.

      در اینجا یک بیانیه INSERT است که یک رکورد جدید در جدول ایجاد می کند.

      مثال : 

      وقتی یک رکورد در جدول CUSTOMERS ایجاد می شود، triggers ایجاد شده بالا، display_salary_changes را ایجاد خواهد کرد.

      و نتیجه زیر را نمایش می دهد.

      مثال : 

      از آنجا که این یک رکورد جدید است، حقوق بازنشستگی قدیمی در دسترس نیست و نتیجه فوق به صورت غیرقانونی است.

      اکنون یک عملیات DML دیگر را در جدول CUSTOMERS انجام می دهیم.

      بیانیه UPDATE یک رکورد موجود در جدول را بروز می کند.

      مثال : 

      هنگامی که یک رکورد در جدول CUSTOMERS بروز می شود.

      در بالا باعث ایجاد راه اندازی در PL / SQL نمایشگر_salary_changes اخراج خواهد شد و نتیجه زیر را نمایش می دهد.

      مثال : 

      کلام آخر

      در این جلسه آموزشی ما برای شما راه اندازی در PL / SQL را در نظر گرفتیم در تعریف کلی از تریگر Trigger می توان گفت که تریگر یک ساختار بلاکی در PL/SQL است که با اجرای دستورات DML بر روی جداول پابگاه داده اجرا می شود.

      امید واریم از خواندن آن لذت برده باشید.

      QR:  جلسه ۱۷ : Triggers در PL / SQL
      به اشتراک بگذارید