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



  • ۲۶
  • آبان

جلسه ۳۲ : دستور TRIGGER در SQLite

  • دسته‌بندی‌ها :
جلسه ۳۲ : دستور TRIGGER در SQLite
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، و کاربرانی که دوره آموزش SQLite را دنبال می کنند. Trigger ها در SQLite توابع فراخوانی پایگاه داده هستند که هنگامی که رویداد پایگاه داده مشخص رخ می دهد این توابع به صورت خودکار انجام می شوند. این توابع کاربردهای گسترده ای داشته و می توان آن ها را در دستورات مختلف SQL از جمله DELETE, INSERT و … با استفاده از دستور TRIGGER در SQLite مدیریت کرد،در ادامه ی این آموزش برای آشنایی با دستور TRIGGER در SQLite با ما همراه باشید.

      دستور TRIGGER در SQLite

      در این آموزش شما را با توضیحات و سینتکس دستور TRIGGER در SQLite آشنا خواهیم کرد.

      • trigger در SQLite می تواند در زمان اجرای دستورات DELETE، INSERT یا UPDATE در یک جدول رخ دهد.
      • در حال حاضر SQLite از TRIGGER فقط برای هر سطر پشتیبانی می کند.
      • هر دو عبارت WHEN و trigger ممکن است به عناصر سطرهای درج ، حذف و یا بروز شده دسترسی پیدا کنند.
      • دسترسی فوق با استفاده از مراجع فرم NEW.column-name و OLD.column-name انجام می شود.
      • اگر WHEN تعریف شود، دستورات SQL فقط برای سطرهایی که WHEN درست باشد، اجرا می شود.
      • کلمات کلیدی BEFORE یا AFTER تعیین می کند که TRIGGER نسبت به درج،حذف یا ویرایش سطر مربوطه اجرا شود.
      • زمانیکه جداول مرتبط با یکدیگر حذف شوند، TRIGGER نیز به صورت خودکار حذف خواهد شد.
      • جدول اصلاح شده باید در همان دیتابیس مانند جدولی باشد کهTRIGGER آن به attach شده است.
      • یک تابع RAISE() در SQL ممکن است با یک برنامه ی trigger برای بالا بردن خطا استفاده شود.

      سینتکس

      این سینتکس اصلی ایجاد یک trigger است :

      مثال : 

      در سینتکس فوق event_name می تواند INSERT, DELETE, یا UPDATE باشد.

      بعد از table_name که نام جدول است، می توانید دستورات SQL را برای تابع trigger تعریف کنید.

      ساختار زیر سینتکس ایجاد یک trigger بر روی یک عملیات UPDATE روی یک یا بیش از یک ستون از یک جدول است:

      مثال : 

      مثال

      مثلا می خواهیم دنباله ی حسابرسی را برای هر رکورد درج شده در جدول COMPANY نگه داریم (حذف جدول COMPANY در صورت وجود داشتن):

      مثال : 

      برای نگهداری دنباله ی حسابرسی ما می توانیم یک جدول با نام AUDIT جایی که پیام های log درج می شوند، ایجاد کنیم.

      مثال : 

      در اینجا ID رکورد AUDIT است و EMP_ID شناسه ای است که از جدول COMPANY می آید و DATE زمانی که رکورد در جدول COMPANY ایجاد می شود زمان بندی می شود.

      حالا یک trigger در جدول COMPANY بصورت زیر ایجاد می کنیم:

      مثال : 

      حالا شروع به وارد کردن رکورد در جدول COMPANY می کنیم که در نتیجه می بایست یک رکورد ثبت حسابرسی در جدول AUDIT ایجاد شود :

      مثال : 

      این یک رکورد در جدول COMPANY ایجاد می کند که به صورت زیر است :

      مثال : 

      در همان زمان، یک رکورد در جدول AUDIT ایجاد خواهد شد، که نتیجه یک trigger است.

      این همان trigger است که روی عملیات INSERT در جدول COMPANY ایجاد کردیم.

      به طور مشابه می توان trigger را روی عملیات UPDATE و DELETE بسته به نیاز خود ایجاد کنید:

      مثال : 

      لیست کردن trigger در SQLite

      شما می توانید تمام  trigger ها از جدول sqlite_master به صورت زیر لیست کنید :

      مثال : 

      دستور SQLite فوق ، تنها یک ورودی را به صورت زیر لیست می کند :

      مثال : 

      اگر می خواهید لیستی از triger ها را روی یک جدول خاص قرار دهید، از عملگر AND با نام جدول به صورت زیر استفاده کنید:

      مثال : 

      کد فوق در SQLite خروجی زیر را تولید خواهد کرد :

      مثال : 

      حذف trigger ها

      سینتکس حذف triger ها با استفاده از دستور DROP به صورت زیر است :

      مثال : 

      کلام آخر

      Trigger ها در SQLite توابعی در دیتابیس می باشند که به طور خودکار فرآیندی را که ما مشخص کرده ایم را بعد از انجام یک عملیات مشخص در دیتابیس انجام می دهند. مثلا در مباحث فوق کدی نوشتیم که بعد از درج در جدول COMPANY ، درج داده در جدول AUDIT نیز انجام شود.

      QR:  جلسه ۳۲ : دستور TRIGGER در SQLite
      به اشتراک بگذارید