কম্পিউটার টিউটোরিয়াল

MySQL-এ সব টেবিল ও কলামের নাম ছোট হাতের অক্ষরে (lowercase) রূপান্তর করা

এটি INFORMATION_SCHEMA.COLUMNS টেবিল ব্যবহার করে করা যায়।

সিনট্যাক্স

SELECT CONCAT('ALTER TABLE ', TABLE_NAME, ' CHANGE `', COLUMN_NAME, '` `', 
       LOWER(COLUMN_NAME), '` ', COLUMN_TYPE, ';') AS anyAliasName
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = 'yourDatabaseName';

উদাহরণ দিয়ে বুঝি

ডাটাবেস: bothinnodbandmyisam (দুটি টেবিল: employee, student)

employee টেবিলের বর্তমান কলাম (বড় হাতের অক্ষরে)

mysql> DESC employee;
+--------------+-------------+------+-----+---------+-------+
| Field        | Type        | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| EmployeeId   | int(11)     | YES  |     | NULL    |       |
| EmployeeName | varchar(30) | YES  |     | NULL    |       |
+--------------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

student টেবিলের বর্তমান কলাম

mysql> DESC student;
+-------------+-------------+------+-----+---------+-------+
| Field       | Type        | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| StudentId   | int(11)     | YES  |     | NULL    |       |
| StudentName | varchar(20) | YES  |     | NULL    |       |
+-------------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

কলাম নামগুলো lowercase-এ রূপান্তরের কোয়েরি জেনারেট করুন

mysql> SELECT CONCAT('ALTER TABLE ', TABLE_NAME, ' CHANGE `', COLUMN_NAME, 
    -> '` `', LOWER(COLUMN_NAME), '` ', COLUMN_TYPE, ';') AS changeColumnNameToLower
    -> FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'bothinnodbandmyisam';
+------------------------------------------------------------------------+
| changeColumnNameToLower                                                |
+------------------------------------------------------------------------+
| ALTER TABLE employee CHANGE `EmployeeId` `employeeid` int(11);         |
| ALTER TABLE employee CHANGE `EmployeeName` `employeename` varchar(30); |
| ALTER TABLE student CHANGE `StudentId` `studentid` int(11);            |
| ALTER TABLE student CHANGE `StudentName` `studentname` varchar(20);    |
+------------------------------------------------------------------------+
4 rows in set (0.00 sec)

উপরের আউটপুট থেকে পাওয়া ALTER TABLE কোয়েরিগুলো রান করলে সব কলামের নাম ছোট হাতের অক্ষরে রূপান্তরিত হয়ে যাবে।

সতর্কতা: প্রোডাকশন ডাটাবেসে রান করার আগে ব্যাকআপ নিন এবং কেস-সেনসিটিভিটি সমস্যা পরীক্ষা করুন।

  1. MySQL-এ NULL কলাম আপডেট করে গণনা করা মান সেট করা (IS NULL)

  2. MySQL-এ সমষ্টি ফাংশন এবং অন্যান্য সকল কলাম একসাথে নির্বাচন করা

  3. MySQL-এ একক কোয়েরি দিয়ে সকল কলামের নাম ছোট হাতের অক্ষরে রূপান্তর করা

  4. MySQL-এ একটি টেবিল থেকে অন্য টেবিলে সকল রেকর্ড কপি করা (CREATE TABLE AS SELECT)