MySQL में PREPARE स्टेटमेंट का उपयोग करके डायनामिक टेबल नाम बनाना
MySQL में वर्तमान वर्ष के आधार पर डायनामिक टेबल नाम बनाने के लिए PREPARE स्टेटमेंट का उपयोग किया जाता है। आइए पहले एक टेबल बनाते हैं:
mysql> create table DemoTable1959 ( UserName varchar(20) ); Query OK, 0 rows affected (0.00 sec)
अब टेबल में कुछ रिकॉर्ड डालते हैं:
mysql> insert into DemoTable1959 values('Chris'); Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1959 values('David'); Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1959 values('Bob'); Query OK, 1 row affected (0.00 sec)
टेबल से सभी रिकॉर्ड देखें:
mysql> select * from DemoTable1959;
आउटपुट:
+----------+ | UserName | +----------+ | Chris | | David | | Bob | +----------+ 3 rows in set (0.00 sec)
वर्तमान वर्ष से डायनामिक टेबल नाम बनाने का क्वेरी
mysql> set @dynamicQuery = CONCAT('create table `', date_format(curdate(),'%Y'), '` as select UserName from DemoTable1959'); Query OK, 0 rows affected (0.00 sec)
mysql> prepare st from @dynamicQuery; Query OK, 0 rows affected (0.00 sec) Statement prepared
mysql> execute st; Query OK, 3 rows affected (0.00 sec) Records: 3 Duplicates: 0 Warnings: 0
वर्तमान वर्ष 2019 मानकर नई टेबल से डेटा देखें:
mysql> select * from `2019`;
आउटपुट:
+----------+ | UserName | +----------+ | Chris | | David | | Bob | +----------+ 3 rows in set (0.00 sec)
व्याख्या: यहां date_format(curdate(),'%Y') वर्तमान वर्ष (जैसे 2019) लौटाता है। CONCAT फ़ंक्शन डायनामिक SQL क्वेरी बनाता है, जिसे PREPARE और EXECUTE से चलाया जाता है।