स्टोर्ड प्रोसीजर में पैरामीटर लेकर डायनामिक टेबल बनाना
PREPARED स्टेटमेंट का उपयोग करके स्टोर्ड प्रोसीजर में पैरामीटर को LIKE क्लॉज में उपयोग करें और नई टेबल बनाएं।
टेबल बनाएं और डेटा डालें:
mysql> create table DemoTable1973 ( StudentId int, StudentName varchar(20) ); Query OK, 0 rows affected (0.00 sec) mysql> insert into DemoTable1973 values(101,'Chris'); ...
स्टोर्ड प्रोसीजर बनाएं:
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 // Query OK, 0 rows affected (0.00 sec) mysql> DELIMITER ;
प्रोसीजर कॉल करें:
mysql> call demo_create('newTableName','John'); Query OK, 2 rows affected (0.00 sec)
नई टेबल से डेटा देखें:
mysql> select * from newTableName;
आउटपुट:
+-----------+-------------+ | StudentId | StudentName | +-----------+-------------+ | 102 | John Doe | | 104 | John Smith | +-----------+-------------+ 2 rows in set (0.00 sec)
नोट: डायनामिक SQL में टेबल नाम और LIKE पैटर्न को CONCAT से जोड़ा जाता है।