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

MySQL স্টোরড প্রসিডিউরে শর্তসাপেক্ষ UPDATE (WHERE ক্লজ সহ)

MySQL-এ স্টোরড প্রসিডিউর তৈরি করে প্যারামিটার গ্রহণ করে নির্দিষ্ট শর্তে রেকর্ড আপডেট করা যায়। এটি পুনরাবৃত্ত কাজের জন্য উপযোগী।

টেবিল এবং ডেটা

CREATE TABLE DemoTable (
    Id INT,
    FirstName VARCHAR(20),
    LastName VARCHAR(20)
);

INSERT INTO DemoTable VALUES(101,'David','Brown');
INSERT INTO DemoTable VALUES(102,'Chris','Brown');
INSERT INTO DemoTable VALUES(103,'John','Doe');

স্টোরড প্রসিডিউর: Id=101 আপডেট

DELIMITER //
CREATE PROCEDURE update_sp(IN fName VARCHAR(20), IN lName VARCHAR(20))
BEGIN
    UPDATE DemoTable
    SET FirstName = fName,
        LastName = lName
    WHERE Id = 101;
END //
DELIMITER ;

কল করুন

CALL update_sp('Adam', 'Smith');

ফলাফল

+------+-----------+----------+
| Id   | FirstName | LastName |
+------+-----------+----------+
| 101  | Adam      | Smith    |
| 102  | Chris     | Brown    |
| 103  | John      | Doe      |
+------+-----------+----------+

ব্যাখ্যা

  • IN fName, lName — ইনপুট প্যারামিটার
  • WHERE Id = 101 — হার্ডকোডেড শর্ত (ডাইনামিক করতে প্যারামিটার যোগ করুন)
  • DELIMITER // ... // DELIMITER ; — প্রসিডিউর বডি র‍্যাপার

উন্নত সংস্করণ: ডাইনামিক Id

CREATE PROCEDURE update_sp2(IN pId INT, IN fName VARCHAR(20), IN lName VARCHAR(20))
BEGIN
    UPDATE DemoTable
    SET FirstName = fName, LastName = lName
    WHERE Id = pId;
END

সতর্কতা

  • WHERE ছাড়া UPDATE করলে সকল রো আপডেট হবে
  • প্রোডাকশনে ইনপুট ভ্যালিডেশন এবং SQL ইনজেকশন প্রতিরোধ নিশ্চিত করুন
  1. MySQL-এ স্টোরড প্রসিডিউরে DECLARE কীওয়ার্ড দিয়ে ভেরিয়েবল ডিক্লেয়ার করা

  2. MySQL স্টোরড প্রসিডিউরে WHERE IN() ব্যবহার করা

  3. MySQL UPDATE문에서 IF문으로 조건부 업데이트하기

  4. MySQL-এ স্টোরড প্রসিডিউর থেকে টেবিলের সব রেকর্ড দেখানো