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

MySQL-এ স্টোরড প্রসিডিউর লিখে টেবিলে ডেটা ইনসার্ট করা

MySQL-এ স্টোরড প্রসিডিউর তৈরি করে প্যারামিটার সহ ডেটা ইনসার্ট করা যায়। এটি লজিক এনক্যাপসুলেট করে, নেটওয়ার্ক রাউন্ড ট্রিপ কমানো এবং সিকিউরিটি বাড়াতে সাহায্য করে।

টেবিল তৈরি

CREATE TABLE insert_data_sp_demo (
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(20),
    age INT
);

স্টোরড প্রসিডিউর তৈরি

DELIMITER //

CREATE PROCEDURE sp_insert_student(
    IN p_student_name VARCHAR(100),
    IN p_student_age INT
)
BEGIN
    INSERT INTO insert_data_sp_demo (name, age) VALUES (p_student_name, p_student_age);
END //

DELIMITER ;

প্রসিডিউর কল করা

CALL sp_insert_student('Chris', 24);

ফলাফল যাচাই

SELECT * FROM insert_data_sp_demo;
+----+-------+------+
| id | name  | age  |
+----+-------+------+
| 1  | Chris | 24   |
+----+-------+------+

আউটপুট প্যারামিটার (LAST_INSERT_ID রিটার্ন)

DELIMITER //

CREATE PROCEDURE sp_insert_student_ret(
    IN p_name VARCHAR(100),
    IN p_age INT,
    OUT p_new_id INT
)
BEGIN
    INSERT INTO insert_data_sp_demo (name, age) VALUES (p_name, p_age);
    SET p_new_id = LAST_INSERT_ID();
END //

DELIMITER ;

-- কল
CALL sp_insert_student_ret('Anna', 22, @new_id);
SELECT @new_id;

ফলাফল

+---------+
| @new_id |
+---------+
| 2       |
+---------+

শর্তসাপেক্ষ লজিক (IF/ELSE)

CREATE PROCEDURE sp_insert_conditional(
    IN p_name VARCHAR(100),
    IN p_age INT
)
BEGIN
    IF p_age >= 18 THEN
        INSERT INTO insert_data_sp_demo (name, age) VALUES (p_name, p_age);
        SELECT 'Inserted' AS status;
    ELSE
        SELECT 'Rejected: under 18' AS status;
    END IF;
END

সেরা অনুশীলন

  • DELIMITER // ... DELIMITER ; ব্যবহার করুন প্রসিডিউর বডি ডিফাইন করার সময়
  • প্যারামিটারে IN (ইনপুট), OUT (আউটপুট), INOUT (দুটোই) স্পেসিফাই করুন
  • LAST_INSERT_ID() সেশন-স্কোপড, কনকারেন্টি-সেফ
  • ত্রুটি হ্যান্ডলিং: DECLARE CONTINUE HANDLER FOR SQLEXCEPTION ...
  • SQL ইনজেকশন রোধ: প্রসিডিউর প্যারামিটার বাইন্ড হয়, স্ট্রিং কনক্যাটিনেশন নয়

প্রসিডিউর তালিকা দেখুন

SHOW PROCEDURE STATUS WHERE Db = 'your_db';
  1. Java ব্যবহার করে MySQL ডেটাবেসে ডেটা ইনসার্ট করা (JDBC)

  2. Java-MySQL 연동: 단일 컬럼만 INSERT하기

  3. MySQL স্টোরড প্রসিডিউরে ডেটা ইনসার্ট করা

  4. MySQL-এ LEFT JOIN ব্যবহার করে টেবিল A-র ডেটা টেবিল B-এ না থাকলে টেবিল C-তে ইনসার্ট করা