इसके लिए आप संग्रहित प्रक्रिया का उपयोग कर सकते हैं। आइए हम गतिशील रूप से दो स्तंभों के साथ एक तालिका बनाते हैं अर्थात छात्र आईडी int के रूप में, जबकि छात्र नाम वर्कर के रूप में -
mysql> DELIMITER $$ mysql> CREATE PROCEDURE creatingDynamicTableDemo(yourTableName VARCHAR(200)) -> BEGIN -> SET @name = yourTableName; -> SET @st = CONCAT(' '> CREATE TABLE IF NOT EXISTS `' , @name, '` ( '> `StudentId` int UNSIGNED NOT NULL AUTO_INCREMENT, '> `StudentName` varchar(20) NOT NULL, '> PRIMARY KEY (`StudentId`) '> ) '> '); -> PREPARE myStatement FROM @st; -> EXECUTE myStatement; -> DEALLOCATE PREPARE myStatement; -> END $$ Query OK, 0 rows affected (0.16 sec) mysql> DELIMITER ;
ऊपर, हमने छात्र आईडी को प्राथमिक कुंजी के रूप में सेट किया है।
कॉल कमांड की मदद से संग्रहित प्रक्रिया को कॉल करें -
mysql> call creatingDynamicTableDemo('DemoTable'); Query OK, 0 rows affected, 1 warning (0.65 sec)
अब आप तालिका के विवरण की जांच कर सकते हैं -
mysql> desc DemoTable;
आउटपुट
यह निम्नलिखित आउटपुट देगा -
+-------------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+------------------+------+-----+---------+----------------+ | StudentId | int(10) unsigned | NO | PRI | NULL | auto_increment | | StudentName | varchar(20) | NO | | NULL | | +-------------+------------------+------+-----+---------+----------------+ 2 rows in set (0.00 sec)