Bạn có thể đạt được điều này với sự trợ giúp của INFORMATION_SCHEMA.COLUMNS. Cú pháp như sau -
SELECT CONCAT('ALTER TABLE ', TABLE_NAME, ' CHANGE `', COLUMN_NAME, '` `', LOWER(COLUMN_NAME), '` ', COLUMN_TYPE, ';') AS anyAliasName FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = ‘yourDatabaseName’;
Bây giờ sử dụng cơ sở dữ liệu có hai bảng. Tên cơ sở dữ liệu như sau “bothinnodbandmyisam”. Cơ sở dữ liệu này có các bảng sau -
- nhân viên
- sinh viên
Mô tả bảng nhân viên như sau -
mysql> desc employee;
Sau đây là kết quả đầu ra. Giả sử chúng ta có các cột sau trong bảng nhân viên không ở dạng chữ thường -
+--------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------------+-------------+------+-----+---------+-------+ | EmployeeId | int(11) | YES | | NULL | | | EmployeeName | varchar(30) | YES | | NULL | | +--------------+-------------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
Mô tả của bảng học sinh như sau. Truy vấn như sau -
mysql> desc student;
Sau đây là kết quả đầu ra. Giả sử chúng ta có các cột sau trong bảng sinh viên không ở dạng chữ thường -
+-------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+-------------+------+-----+---------+-------+ | StudentId | int(11) | YES | | NULL | | | StudentName | varchar(20) | YES | | NULL | | +-------------+-------------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
Đây là truy vấn để thay đổi tên cột của tất cả các bảng thành chữ thường. Truy vấn như sau -
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';
Sau đây là đầu ra hiển thị lệnh ALTER TABLE hiển thị tên cột được cập nhật -
+------------------------------------------------------------------------+ | 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)
Nhìn vào kết quả đầu ra mẫu ở trên, tất cả các tên cột đã được thay đổi thành chữ thường.