কম্পিউটার টিউটোরিয়াল

SQL Triggers: ডেটাবেস ট্রিগারের গাইড

একটি SQL Trigger হলো একটি ইভেন্ট যা তখন অনেক ইভেন্ট সেট অফ করে যখন একজন ইউজার একটি নির্দিষ্ট টেবিলের সাথে ইন্টারঅ্যাক্ট করে। এই নির্দিষ্ট SQL স্টেটমেন্ট ফর্ম ডেটা ভ্যালিডেট করতে বা নিয়ম বাধ্যতামূলক করতে সাহায্য করে।

একটি ট্রিগার এক্সিকিউট হয় নিচের ইভেন্টগুলো থেকে যেকোনোর আগে বা পরে:

  • INSERT — যখন একটি নতুন সারি ইনসার্ট হয়।
  • UPDATE — যখন একটি বিদ্যমান সারি আপডেট হয়।
  • DELETE — যখন একটি সারি ডিলিট হয়।

কোন ট্রিগার ফায়ার করবে এবং কী ঘটবে সেটি নির্ভর করে সেটি কীভাবে লেখা হয়েছে। চলুন CREATE স্টেটমেন্ট তৈরি করে শুরু করি:

CREATE TRIGGER <trigger_name> [BEFORE|AFTER] [INSERT|UPDATE|DELETE] ON <table_name> [FOR EACH ROW|FOR EACH STATEMENT] BEGIN <trigger_logic> END;

<> যেকোনো সেটের মাঝপথে, আপনার কাস্টম নাম বা লজিক দিয়ে রিপ্লেস করুন। [ ]-এর ভিতরে, উপলব্ধ দিয়ে যেকোনো একটি অপশন বেছে নিন।

BEFORE/AFTER এবং INSERT|UPDATE|DELETE: প্রতিটি লিস্ট থেকে একটি বেছে নিন। BEFORE/AFTER নির্ধারণ করবে ট্রিগার কখন হবে। INSERT/UPDATE/DELETE হলো ইভেন্ট যা ঘটবে যা ট্রিগার শুরু করবে।

FOR EACH ROW|FOR EACH STATEMENT: এখানে দুটি অপশনের পার্থক্য হলো ট্রিগার কতবার চলবে। FOR EACH ROW টেবিলে প্রভাবিত প্রতিটি সারিতে ট্রিগার হবে। FOR EACH STATEMENT সর্বদা কমপক্ষে একবার চালানোর গ্যারান্টি দেয়, কোনো সারি আপডেট হয়নি সেটি নির্বিশেষে।

ডেটাবেস বা টেবিলের মতো, একটি DROP TRIGGER অপশনও আছে:

DROP TRIGGER [IF EXISTS] trigger_name;

IF EXISTS সিনট্যাক্সের একটি ঐচ্ছিক অংশ। যদি স্টেটমেন্ট ব্লকে এটি অন্তর্ভুক্ত থাকে, তবে "trigger doesn't exist" এরর রোধ করে। একটি ডিলিট করা টেবিল автоматиক্যালি उससे জড়িত সকল ট্রিগারও ড্রপ করে দেয়।

জানুন SQL trigger-এর তিনটি মূল জিনিস প্রয়োজন: একটি CREATE স্টেটমেন্ট যা ট্রিগারের নাম এবং ইভেন্ট কখন ঘটবে সেটি দেয়, ট্রিগার কতবার ঘটবে, এবং তারপর একটি BEGIN/END ব্লক যা ট্রিগারের আসল লজিক বिछায়।

প্রথমবারে বুঝতে না পারলে প্র্যাকটিস চালিয়ে যান — কারণ এটি SQL-এ একটি এডভান্সড কনসেপ্ট, অন্যান্য টপিক এবং ফাংশন চেয়ে এটি বেশি রিপিটেশন নেবে কভার করতে।

  1. SQL Server-এ PROCEDURE (প্রোসিজার/স্টোরড প্রোসিজার)

  2. MS SQL Server কী?

  3. Oracle 19c SQL কোয়ারান্টাইন দিয়ে রানওয়ে কুয়েরি প্রতিরোধ করুন

  4. রেইলসে .each দিয়ে খালি কলেকশন হ্যান্ডলিং