คุณสามารถทำได้ด้วยความช่วยเหลือของ INFORMATION_SCHEMA.COLUMNS ไวยากรณ์มีดังนี้ −
เลือก CONCAT('ALTER TABLE ', TABLE_NAME, ' CHANGE `', COLUMN_NAME, '` `',LOWER(COLUMN_NAME), '` ', COLUMN_TYPE, ';') AS anyAliasNameFROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_base ';
ตอนนี้ใช้ฐานข้อมูลที่มีสองตาราง ชื่อฐานข้อมูลดังนี้ “bothinnodbandmyisam” ฐานข้อมูลนี้มีตารางต่อไปนี้ -
- พนักงาน
- นักเรียน
รายละเอียดของตารางพนักงานมีดังนี้ −
mysql> พนักงาน desc;
ต่อไปนี้เป็นผลลัพธ์ สมมติว่าเรามีคอลัมน์ต่อไปนี้ในตารางพนักงานซึ่งไม่ใช่ตัวพิมพ์เล็ก -
<ก่อนหน้า>+--------------+-------------+------+----+---- -----+-------+| สนาม | พิมพ์ | Null | คีย์ | ค่าเริ่มต้น | พิเศษ |+-------------+-------------+------+ -----+----- ----+-------+| รหัสพนักงาน | int(11) | ใช่ | | NULL | || ชื่อพนักงาน | varchar(30) | ใช่ | | NULL | |+-------------+-------------+------+----+------ -----------+2 แถวในชุด (0.00 วินาที)คำอธิบายของตารางนักเรียนมีดังนี้ แบบสอบถามมีดังนี้ −
mysql> อธิบายนักเรียน
ต่อไปนี้เป็นผลลัพธ์ สมมติว่าเรามีคอลัมน์ต่อไปนี้ในตารางนักเรียนซึ่งไม่ใช่ตัวพิมพ์เล็ก −
<ก่อนหน้า>+-------------+-------------+------+----+----- ----+-------+| สนาม | พิมพ์ | Null | คีย์ | ค่าเริ่มต้น | พิเศษ |+-------------+-------------+------+ -----+------ -----------+| รหัสนักศึกษา | int(11) | ใช่ | | NULL | || ชื่อนักเรียน | varchar(20) | ใช่ | | NULL | |+-------------+-------------+------+----+------- ---+-------+2 แถวในชุด (0.00 วินาที)นี่คือแบบสอบถามเพื่อเปลี่ยนชื่อคอลัมน์ของตารางทั้งหมดเป็นตัวพิมพ์เล็ก แบบสอบถามมีดังนี้ −
mysql> SELECT CONCAT('ALTER TABLE ', TABLE_NAME, ' CHANGE `', COLUMN_NAME, '` `', -> LOWER(COLUMN_NAME), '` ', COLUMN_TYPE, ';') AS changeColumnNameToLower -> FROM INFORMATION_S .COLUMNS WHERE TABLE_SCHEMA ='bothinnodbandmyisam';
ต่อไปนี้เป็นผลลัพธ์ที่แสดงคำสั่ง ALTER TABLE ที่แสดงชื่อคอลัมน์ที่อัปเดต -
<ก่อน>+--------------------------------------------- --------------------+| changeColumnNameToLower |+--------------------------------------------- ------------------------------------+| ALTER TABLE พนักงานเปลี่ยน `EmployeeId` `employeeid` int(11); || ALTER TABLE พนักงานเปลี่ยน `EmployeeName` `employeename` varchar(30); || ALTER TABLE นักเรียนเปลี่ยน `StudentId` `studentid' int(11); || ALTER TABLE นักเรียนเปลี่ยน `StudentName` `studentname` varchar (20); |+------------------------------------------------ ------------------------+4 แถวในชุด (0.00 วินาที)ดูผลลัพธ์ตัวอย่างด้านบน ชื่อคอลัมน์ทั้งหมดถูกเปลี่ยนชื่อเป็นตัวพิมพ์เล็ก