Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

การเปลี่ยนชื่อตารางและคอลัมน์เป็นตัวพิมพ์เล็กทั้งหมดใน MySQL

ใช้ INFORMATION_SCHEMA.COLUMNS สร้างคำสั่ง ALTER TABLE อัตโนมัติเพื่อเปลี่ยนชื่อคอลัมน์เป็นตัวพิมพ์เล็ก

ไวยากรณ์

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:

+--------------+-------------+------+-----+---------+-------+
| Field        | Type        | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| EmployeeId   | int(11)     | YES  |     | NULL    |       |
| EmployeeName | varchar(30) | YES  |     | NULL    |       |
+--------------+-------------+------+-----+---------+-------+

ตาราง student:

+-------------+-------------+------+-----+---------+-------+
| Field       | Type        | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| StudentId   | int(11)     | YES  |     | NULL    |       |
| StudentName | varchar(20) | YES  |     | NULL    |       |
+-------------+-------------+------+-----+---------+-------+

รันคิวรี่สร้างคำสั่ง ALTER:

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);    |
+------------------------------------------------------------------------+

นำคำสั่งเหล่านี้ไปรันจะเปลี่ยนชื่อคอลัมน์ทั้งหมดเป็นตัวพิมพ์เล็ก