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

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

স্টোরড প্রোসিডিউরের ভেতর থেকে ডাইনামিক SQL ব্যবহার করে SHOW CREATE TABLE চালানো যায়।

টেবিল তৈরি:

mysql> CREATE TABLE DemoTable2011 (
    StudentId INT NOT NULL AUTO_INCREMENT,
    StudentName VARCHAR(20),
    StudentAge INT,
    StudentCountryName VARCHAR(20),
    PRIMARY KEY(StudentId)
);

স্টোরড প্রোসিডিউর (টেবিল নাম প্যারামিটার হিসেবে):

mysql> DELIMITER //
mysql> CREATE PROCEDURE test_show_create_demo(IN table_name VARCHAR(100))
    BEGIN
        SET @query = CONCAT("SHOW CREATE TABLE ", table_name);
        PREPARE st FROM @query;
        EXECUTE st;
        DEALLOCATE PREPARE st;
    END //
mysql> DELIMITER ;

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

mysql> CALL test_show_create_demo('DemoTable2011');

আউটপুট (টেবিল ডেফিনিশন):

+---------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table         | Create Table                                                                                                                                                                                                                                                                               |
+---------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| DemoTable2011 | CREATE TABLE `demotable2011` ( `StudentId` int(11) NOT NULL AUTO_INCREMENT, `StudentName` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, `StudentAge` int(11) DEFAULT NULL, `StudentCountryName` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, PRIMARY KEY (`StudentId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci |
+---------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

ব্যাখ্যা

  • CONCAT("SHOW CREATE TABLE ", table_name) — ডাইনামিক কোয়েরি স্ট্রিং তৈরি।
  • PREPARE ... EXECUTE ... DEALLOCATE PREPARE — প্রিপেয়ারড স্টেটমেন্ট লাইফসাইকেল।
  • DEALLOCATE PREPARE — স্টেটমেন্ট রিলিজ করা (মেমোরি লিক এড়াতে)।

ব্যবহারিক পরিস্থিতি

  • মাইগ্রেশন স্ক্রিপ্টে টেবিল স্কিমা এক্সপোর্ট করতে।
  • ডাইনামিক্যালি টেবিল মেটাডেটা চেক করতে।
  • অ্যাডমিন টুলে টেবিল স্ট্রাকচার দেখাতে।
  1. MySQL Workbench-এ স্টোরড প্রসিজার তৈরি করা

  2. MySQL-এ স্টোরড প্রসিডিউরে DECLARE কীওয়ার্ড দিয়ে ভেরিয়েবল ডিক্লেয়ার করা

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

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