INFORMATION_SCHEMA से ALTER TABLE स्टेटमेंट जनरेट करना
पहले टेबल बनाएं:
mysql> create table DemoTable1 ( StudentFirstName varchar(20), StudentLastName varchar(20), StudentAge int, StudentCountryName varchar(20) ); Query OK, 0 rows affected (4.20 sec)
अब MySQL में एकल क्वेरी से सभी कॉलम नामों को लोअरकेस बनाएं:
mysql> select concat('alter table ', table_name, ' change `', column_name, '` `', lower(column_name), '` ', column_type, ';') from information_schema.columns where table_schema = 'demo';
आउटपुट:
+-----------------------------------------------------------------------------------------------------------------+ | concat('alter table ', table_name, ' change `', column_name, '` `', lower(column_name), '` ', column_type, ';') | +-----------------------------------------------------------------------------------------------------------------+ | alter table demotable1 change `StudentFirstName` `studentfirstname` varchar(20); | | alter table demotable1 change `StudentLastName` `studentlastname` varchar(20); | | alter table demotable1 change `StudentAge` `studentage` int(11); | | alter table demotable1 change `StudentCountryName` `studentcountryname` varchar(20); | | alter table mytable change `MyEuroColumn` `myeurocolumn` varchar(5); | +-----------------------------------------------------------------------------------------------------------------+ 5 rows in set (0.00 sec)
व्याख्या: यह क्वेरी INFORMATION_SCHEMA.COLUMNS से मेटाडेटा पढ़ती है और प्रत्येक कॉलम के लिए ALTER TABLE ... CHANGE स्टेटमेंट जनरेट करती है जो कॉलम नाम को लोअरकेस में बदल देता है। आउटपुट में जनरेटेड स्टेटमेंट्स को कॉपी करके निष्पादित करना होगा। ध्यान दें: यह क्वेरी स्वयं नाम नहीं बदलती, बल्कि बदलने के लिए SQL स्टेटमेंट उत्पन्न करती है।