এই কাজের জন্য স্টোরড প্রোসিজার ব্যবহার করুন। ডাইনামিক্যালি দুটি কলামসহ (StudentId INT, StudentName VARCHAR) টেবিল তৈরি করা যাক:
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 ;
উপরে StudentId কে PRIMARY KEY হিসেবে সেট করা হয়েছে।
CALL কমান্ড দিয়ে স্টোরড প্রোসিজার কল করুন:
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)