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"과 같습니다. 이 데이터베이스에는 다음 테이블이 있습니다 -
- 직원
- 학생
직원 테이블에 대한 설명은 다음과 같습니다 -
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)
학생 테이블에 대한 설명은 다음과 같습니다. 쿼리는 다음과 같습니다 -
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)
다음은 모든 테이블의 열 이름을 소문자로 변경하는 쿼리입니다. 쿼리는 다음과 같습니다 -
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';
다음은 업데이트된 열 이름을 표시하는 ALTER TABLE 명령을 표시하는 출력입니다. -
+------------------------------------------------------------------------+ | 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)
위의 샘플 출력을 보면 모든 열 이름이 소문자로 변경되었습니다.