Stored Procedures এবং Triggers এর উদাহরণ

PHPMyAdmin: বাস্তব উদাহরণ এবং ব্যবহারিক ডেমো - পিএইচপি মাইএডমিন (PHP MyAdmin) - Database Tutorials

407

Stored Procedures এবং Triggers হল MySQL বা MariaDB ডাটাবেসের দুটি গুরুত্বপূর্ণ ফিচার যা ডাটাবেসের কার্যক্রম স্বয়ংক্রিয়ভাবে পরিচালনা করতে সহায়তা করে। এগুলি ডাটাবেসে কার্যকরী কোড সংরক্ষণ এবং নির্দিষ্ট কার্যাবলী সম্পাদনের জন্য ব্যবহৃত হয়। এখানে Stored Procedures এবং Triggers-এর উদাহরণ দেওয়া হল।


১. Stored Procedure (স্টোরড প্রোসিডিউর)

Stored Procedure হল একটি প্রি-কম্পাইলড SQL কোড যা ডাটাবেসে সংরক্ষিত থাকে এবং প্রয়োজনে তা পুনরায় কার্যকরী করা যায়। এটি একাধিক SQL স্টেটমেন্ট বা অপারেশন সম্পাদন করতে পারে এবং প্রোগ্রামেবল কার্যাবলী সরবরাহ করে।

Stored Procedure তৈরির উদাহরণ:

কেস ১: একটি ব্যবহারকারীর তথ্য আপডেট করার জন্য Stored Procedure

ধরা যাক, আপনি একটি users টেবিল তৈরি করেছেন, যেখানে ব্যবহারকারীদের নাম, ইমেইল এবং বয়স রয়েছে। আপনার একটি Stored Procedure দরকার যা ব্যবহারকারীর বয়স আপডেট করবে।

টেবিল স্ট্রাকচার:

CREATE TABLE users (
    user_id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(100),
    age INT
);

Stored Procedure তৈরি:

DELIMITER CREATEPROCEDUREupdateage(INuseremailVARCHAR(100),INnewageINT)BEGINUPDATEusersSETage=newageWHEREemail=useremail;END

CREATE PROCEDURE update_age(IN user_email VARCHAR(100), IN new_age INT)
BEGIN
    UPDATE users
    SET age = new_age
    WHERE email = user_email;
END

DELIMITER ;

এখানে:

  • update_age হলো Stored Procedure এর নাম।
  • user_email এবং new_age ইনপুট প্যারামিটার হিসেবে গ্রহণ করা হচ্ছে।
  • users টেবিলের নির্দিষ্ট ব্যবহারকারীর বয়স আপডেট করতে এটি কাজ করবে।

Stored Procedure কল করা:

CALL update_age('example@example.com', 30);

এটি example@example.com ইমেইল ওয়ালা ব্যবহারকারীর বয়স ৩০ আপডেট করবে।


২. Trigger (ট্রিগার)

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

Trigger তৈরির উদাহরণ:

কেস ২: ডেটা ইনসার্ট করার পর লগ রেকর্ড করা Trigger

ধরা যাক, আপনি একটি audit_log টেবিল তৈরি করেছেন যা প্রতিটি ইনসার্টের পরে লগ রেকর্ড করবে।

টেবিল স্ট্রাকচার:

CREATE TABLE users (
    user_id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(100),
    age INT
);

CREATE TABLE audit_log (
    log_id INT AUTO_INCREMENT PRIMARY KEY,
    action_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    action VARCHAR(50),
    user_id INT
);

এখানে, users টেবিলে নতুন রেকর্ড ইনসার্ট করার পর audit_log টেবিলে একটি লগ রেকর্ড হবে।

Trigger তৈরি:

DELIMITER CREATETRIGGERafteruserinsertAFTERINSERTONusersFOREACHROWBEGININSERTINTOauditlog(action,userid)VALUES('INSERT',NEW.userid);END

CREATE TRIGGER after_user_insert
AFTER INSERT ON users
FOR EACH ROW
BEGIN
    INSERT INTO audit_log (action, user_id)
    VALUES ('INSERT', NEW.user_id);
END

DELIMITER ;

এখানে:

  • AFTER INSERT: এটি নির্দেশ করে যে ইনসার্ট করার পর এই Trigger কার্যকর হবে।
  • NEW.user_id: এটি নতুন ইনসার্ট হওয়া রেকর্ডের user_id ফিল্ডের মান।

Trigger এর কার্যকারিতা:

এখন, যখন আপনি users টেবিলে একটি নতুন রেকর্ড ইনসার্ট করবেন, তখন স্বয়ংক্রিয়ভাবে audit_log টেবিলে একটি লগ রেকর্ড তৈরি হবে।

নতুন রেকর্ড ইনসার্ট করা:

INSERT INTO users (name, email, age) VALUES ('John Doe', 'john.doe@example.com', 28);

এটি users টেবিলে একটি নতুন রেকর্ড ইনসার্ট করার পর audit_log টেবিলেও একটি লগ রেকর্ড তৈরি করবে।


Stored Procedures এবং Triggers এর মধ্যে পার্থক্য

বিষয়Stored ProcedureTrigger
সংজ্ঞাপ্রি-কম্পাইলড SQL কোড যা কার্যকর করা হয় প্রয়োজনে।ডাটাবেসে একটি ইভেন্ট ঘটলে স্বয়ংক্রিয়ভাবে কার্যকর হয়।
এটি কখন কার্যকর হয়?ম্যানুয়ালি কল করা হলে।একটি নির্দিষ্ট ইভেন্ট (INSERT, UPDATE, DELETE) ঘটলে।
ব্যবহারএকাধিক SQL অপারেশন সম্পাদন করার জন্য।ডেটা ইন্টিগ্রিটি নিশ্চিত করা এবং স্বয়ংক্রিয় কাজ করার জন্য।
প্রতিরোধকোডটি পুনরায় চালাতে হতে পারে।ট্রিগারটি একবার কনফিগার হলে স্বয়ংক্রিয়ভাবে কাজ করে।
ফলাফলএকটি মান (রিটার্ন) প্রদান করতে পারে।কোনো মান রিটার্ন করে না, বরং কিছু কার্যক্রম সম্পাদন করে।

সারাংশ

  • Stored Procedures এবং Triggers দুটি ডাটাবেসে কার্যকরী প্রোগ্রামেবল ইউনিট যা কার্যাবলী স্বয়ংক্রিয় করতে ব্যবহৃত হয়।
  • Stored Procedures ব্যবহারকারীর নির্দেশ অনুযায়ী কার্যকর হয় এবং একাধিক SQL অপারেশন সম্পাদন করতে পারে, যেমন ডেটা আপডেট বা গণনা করা।
  • Triggers তখন কার্যকর হয় যখন কোনো নির্দিষ্ট ইভেন্ট ঘটতে থাকে (যেমন ইনসার্ট বা আপডেট)। এটি ডেটাবেসের এক্সটেনশনের মতো কাজ করে, যেখানে ইভেন্ট ঘটার পরে স্বয়ংক্রিয়ভাবে কার্যক্রম শুরু হয়।

এগুলো ডাটাবেস ম্যানেজমেন্টের জন্য গুরুত্বপূর্ণ টুল এবং ডাটাবেসের কার্যাবলী আরও স্মার্ট এবং সহজ করার জন্য ব্যবহৃত হয়।

Content added By
Promotion

Are you sure to start over?

Loading...