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

MySQL স্টোরড প্রোসিডিউরে ডাইনামিক SQL এবং LIKE ক্লজ ব্যবহার করে নতুন টেবিল তৈরি করা

স্টোরড প্রোসিডিউরের মধ্যে ডাইনামিক SQL এবং প্রিপেয়ারড স্টেটমেন্ট ব্যবহার করে প্যারামিটার ভিত্তিক নতুন টেবিল তৈরি করা যায়।

টেবিল ও ডেটা তৈরি:

mysql> CREATE TABLE DemoTable1973 (
    StudentId INT,
    StudentName VARCHAR(20)
);
mysql> INSERT INTO DemoTable1973 VALUES
    (101,'Chris'), (102,'John Doe'), (103,'David'), (104,'John Smith');

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

mysql> DELIMITER //
mysql> CREATE PROCEDURE demo_create(IN newTableName VARCHAR(20), IN tbl VARCHAR(20))
    BEGIN
        DROP TABLE IF EXISTS newTableName;
        SET @query = CONCAT('CREATE TABLE ', newTableName, ' AS SELECT * FROM DemoTable1973 WHERE StudentName LIKE ''%', tbl, '%''');
        PREPARE ps FROM @query;
        EXECUTE ps;
    END //
mysql> DELIMITER ;

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

mysql> CALL demo_create('newTableName', 'John');

ফলাফল:

+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
| 102       | John Doe    |
| 104       | John Smith  |
+-----------+-------------+

মূল পয়েন্ট

  • CONCAT দিয়ে ডাইনামিক কোয়েরি তৈরি করা হয়েছে।
  • PREPARE এবং EXECUTE দিয়ে রান করা হয়েছে।
  • LIKE '%John%' প্যাটার্ন ম্যাচিংয়ের জন্য ব্যবহার করা হয়েছে।
  • টেবিল নামও প্যারামিটার হিসেবে নেওয়া হয়েছে।

সতর্কতা: SQL ইনজেকশন এড়াতে ইনপুট ভ্যালিডেশন জরুরি।

  1. MySQL স্টোরড প্রোসিডিউরে IN() ক্লজ ব্যবহার করে নির্দিষ্ট রেকর্ড বের করা

  2. MySQL স্টোরড প্রোসিডিউরে SHOW CREATE TABLE এক্সিকিউট করা

  3. MySQL-এ সঠিকভাবে DELIMITER ব্যবহার করে স্টোরড প্রসিডিউরে মান ইনসার্ট করা

  4. MySQL-এ স্টোরড প্রসিডিউরে ডাইনামিক SQL কোয়ারি ইমপ্লিমেন্ট করা