Triggers তৈরি এবং ব্যবহারের উদাহরণ

Stored Procedures, Functions, এবং Triggers - পিএইচপি মাইএডমিন (PHP MyAdmin) - Database Tutorials

398

Trigger হলো MySQL ডাটাবেসের একটি স্টোরড প্রোগ্রাম যা নির্দিষ্ট একটি ইভেন্ট (INSERT, UPDATE, DELETE) ঘটলে স্বয়ংক্রিয়ভাবে কার্যকর হয়। এটি সাধারণত ডেটা ম্যানিপুলেশন বা ডেটা অখণ্ডতা রক্ষার জন্য ব্যবহৃত হয়।


Trigger তৈরি করার নিয়ম

Trigger তৈরি করার জন্য MySQL এর CREATE TRIGGER স্টেটমেন্ট ব্যবহার করা হয়। একটি Trigger নির্দিষ্ট একটি টেবিলে এবং একটি নির্দিষ্ট ইভেন্টের জন্য তৈরি করা হয়।

সাধারণ সিনট্যাক্স:

CREATE TRIGGER trigger_name
{ BEFORE | AFTER } { INSERT | UPDATE | DELETE }
ON table_name
FOR EACH ROW
BEGIN
    -- Trigger logic here
END;

Trigger তৈরির ধাপ

১. Trigger এর ধরণ নির্ধারণ করুন

Trigger দুটি ধরণের হতে পারে:

  • BEFORE: ডেটা ঢোকানোর আগে বা পরিবর্তনের আগে কার্যকর হয়।
  • AFTER: ডেটা ঢোকানোর পরে বা পরিবর্তনের পরে কার্যকর হয়।

২. ইভেন্ট নির্ধারণ করুন

Trigger তিনটি ইভেন্টের জন্য কাজ করে:

  • INSERT: নতুন ডেটা যোগ করার সময়।
  • UPDATE: বিদ্যমান ডেটা পরিবর্তন করার সময়।
  • DELETE: ডেটা মুছে ফেলার সময়।

৩. Trigger যুক্ত করুন

Trigger নির্দিষ্ট একটি টেবিলের সাথে সংযুক্ত থাকে এবং প্রতিটি রো পরিবর্তনের জন্য কার্যকর হয়।


উদাহরণ: Trigger তৈরি এবং ব্যবহার

১. INSERT Trigger উদাহরণ

নতুন ডেটা ঢোকানোর সময় একটি লোগ টেবিলে পরিবর্তনের তথ্য সংরক্ষণ করা।

টেবিল তৈরি করুন:

CREATE TABLE employees (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    position VARCHAR(50),
    salary DECIMAL(10, 2)
);

CREATE TABLE employee_logs (
    log_id INT AUTO_INCREMENT PRIMARY KEY,
    employee_id INT,
    action VARCHAR(50),
    log_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

Trigger তৈরি করুন:

CREATE TRIGGER after_employee_insert
AFTER INSERT ON employees
FOR EACH ROW
BEGIN
    INSERT INTO employee_logs (employee_id, action)
    VALUES (NEW.id, 'INSERT');
END;

ব্যবহার:
নতুন ডেটা ঢোকানোর পর Trigger কার্যকর হবে:

INSERT INTO employees (name, position, salary)
VALUES ('John Doe', 'Manager', 75000);

ফলাফল:
employee_logs টেবিলে একটি লোগ সংরক্ষণ হবে:

SELECT * FROM employee_logs;

২. UPDATE Trigger উদাহরণ

ডেটা পরিবর্তনের সময় পূর্বের ডেটা সংরক্ষণ করা।

Trigger তৈরি করুন:

CREATE TRIGGER before_employee_update
BEFORE UPDATE ON employees
FOR EACH ROW
BEGIN
    INSERT INTO employee_logs (employee_id, action)
    VALUES (OLD.id, 'UPDATE');
END;

ব্যবহার:
বিদ্যমান ডেটা আপডেট করার সময় Trigger কার্যকর হবে:

UPDATE employees
SET salary = 80000
WHERE id = 1;

ফলাফল:
employee_logs টেবিলে আপডেট লোগ সংরক্ষণ হবে।


৩. DELETE Trigger উদাহরণ

ডেটা মুছে ফেলার সময় একটি লোগ তৈরি করা।

Trigger তৈরি করুন:

CREATE TRIGGER after_employee_delete
AFTER DELETE ON employees
FOR EACH ROW
BEGIN
    INSERT INTO employee_logs (employee_id, action)
    VALUES (OLD.id, 'DELETE');
END;

ব্যবহার:
ডেটা মুছে ফেলার সময় Trigger কার্যকর হবে:

DELETE FROM employees WHERE id = 1;

ফলাফল:
employee_logs টেবিলে ডিলিট লোগ সংরক্ষণ হবে।


Trigger মুছে ফেলার নিয়ম

Trigger মুছে ফেলার জন্য DROP TRIGGER ব্যবহার করা হয়।
সিনট্যাক্স:

DROP TRIGGER trigger_name;

উদাহরণ:

DROP TRIGGER after_employee_insert;

Trigger ব্যবহারের সুবিধা এবং অসুবিধা

সুবিধা:

  1. স্বয়ংক্রিয় কার্যক্রম: নির্দিষ্ট ইভেন্টে ডেটাবেস কাজ স্বয়ংক্রিয়ভাবে সম্পন্ন হয়।
  2. ডেটা অখণ্ডতা বজায় রাখা: Trigger ডেটা সংশোধন বা সংরক্ষণের সময় ডেটা অখণ্ডতা নিশ্চিত করে।
  3. লগিং এবং অডিটিং: ডেটার পরিবর্তনের লোগ সংরক্ষণ করতে Trigger কার্যকর।

অসুবিধা:

  1. Debugging জটিলতা: Trigger এর কার্যক্রম ডিবাগ করা কঠিন হতে পারে।
  2. পারফরম্যান্স সমস্যা: বড় টেবিলে Trigger ব্যবহার করলে কোয়েরি ধীরগতির হতে পারে।
  3. অপ্রত্যাশিত আচরণ: ট্রিগার কাজ করার পদ্ধতি বুঝতে সমস্যা হলে অপ্রত্যাশিত আচরণ দেখা দিতে পারে।

সারাংশ

Trigger হলো MySQL বা MariaDB ডাটাবেসে নির্দিষ্ট ইভেন্টের সময় স্বয়ংক্রিয়ভাবে কার্যকর হওয়া একটি গুরুত্বপূর্ণ ফিচার। এটি ডেটাবেস লোগিং, ডেটা অখণ্ডতা বজায় রাখা, এবং জটিল ডেটা ম্যানিপুলেশনের জন্য ব্যবহৃত হয়। সঠিকভাবে পরিকল্পনা এবং ব্যবহারের মাধ্যমে Trigger ডাটাবেস পরিচালনায় দক্ষতা এবং সুরক্ষা নিশ্চিত করে।

Content added By
Promotion

Are you sure to start over?

Loading...