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

MySQL-এ স্টোরড প্রসিডিউর দিয়ে টেবিল তৈরি করা

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

স্টোরড প্রসিডিউর তৈরি (DELIMITER ব্যবহার)

mysql> DELIMITER //
mysql> CREATE PROCEDURE Stored_Procedure_CreatingTable()
    -> BEGIN
    ->     CREATE TABLE DemoTable (
    ->         Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ->         UserFirstName VARCHAR(20),
    ->         UserLastName VARCHAR(20)
    ->     );
    -> END;
    -> //
Query OK, 0 rows affected (0.16 sec)
mysql> DELIMITER ;

গুরুত্বপূর্ণ: DELIMITER // প্রসিডিউর বডির মধ্যে সেমিকোলন (;) ব্যবহার করার জন্য ডিলিমিটার পরিবর্তন করে। শেষে DELIMITER ; দিয়ে ফিরিয়ে আনা হয়।

স্টোরড প্রসিডিউর কল (কল করুন)

mysql> CALL Stored_Procedure_CreatingTable();
Query OK, 0 rows affected (0.18 sec)

তैयার টেবিলের কাঠামো যাচাই

mysql> DESC DemoTable;
+---------------+-------------+------+-----+---------+----------------+
| Field         | Type        | Null | Key | Default | Extra          |
+---------------+-------------+------+-----+---------+----------------+
| Id            | int(11)     | NO   | PRI | NULL    | auto_increment |
| UserFirstName | varchar(20) | YES  |     | NULL    |                |
| UserLastName  | varchar(20) | YES  |     | NULL    |                |
+---------------+-------------+------+-----+---------+----------------+

প্যারামিটারাইজড ভার্সন (ডাইনামিক টেবিল নাম)

DELIMITER //
CREATE PROCEDURE CreateTableDynamic(IN tableName VARCHAR(64))
BEGIN
    SET @sql = CONCAT('CREATE TABLE ', tableName, ' (
        Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        Name VARCHAR(100)
    )');
    PREPARE stmt FROM @sql;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;
END;
//
DELIMITER ;

কল করে টেবিল তৈরি

CALL CreateTableDynamic('MyNewTable');

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

স্টোরড প্রসিডিউর দরকার কেন?

  • জটিল টেবিল ক্রিয়েশন লজিক এনক্যাপসুলেট করতে
  • পারমিশন কন্ট্রোল (প্রসিডিউর এক্সিকিউট পারমিশন দিয়ে টেবিল ক্রিয়েট করতে দেয়া)
  • অডিট লগিং
  • ভার্সন কন্ট্রোল করা স্কিমা চেঞ্জ
  1. MySQL Workbench-এ স্টোরড প্রসিজার তৈরি করা

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

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

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