MySQL에서 테이블의 구조(schema)가 변경되었는지 확인하려면 SHOW CREATE TABLE 명령어를 활용하면 됩니다. 이 명령어는 테이블의 현재 구조를 CREATE TABLE 문 형태로 출력해 주기 때문에, 변경 전후의 구조를 비교하여 어떤 변화가 있었는지 쉽게 파악할 수 있습니다.
1. 예제 테이블 생성
먼저 예제로 사용할 테이블을 하나 만들어 보겠습니다.
mysql> CREATE TABLE DemoTable
(
StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentName varchar(40),
StudentAge int,
StudentMarks int
);
Query OK, 0 rows affected (0.76 sec)
2. 현재 테이블 구조 확인하기
테이블 구조를 확인하려면 다음 쿼리를 실행합니다.
mysql> SHOW CREATE TABLE DemoTable;
실행 결과는 아래와 같습니다.
+---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| DemoTable | CREATE TABLE `DemoTable` (`StudentId` int(11) NOT NULL AUTO_INCREMENT, `StudentName` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL, `StudentAge` int(11) DEFAULT NULL, `StudentMarks` int(11) DEFAULT NULL, PRIMARY KEY (`StudentId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci |
+---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.06 sec)
3. 테이블 구조 변경하기
이제 ALTER TABLE 문을 사용해 새로운 컬럼을 추가하여 테이블 구조를 변경해 보겠습니다.
mysql> ALTER TABLE DemoTable ADD COLUMN StudentCountryName varchar(20);
Query OK, 0 rows affected (0.65 sec)
Records : 0 Duplicates : 0 Warnings : 0
4. 변경된 구조 다시 확인하기
구조 변경 후 동일한 명령어로 테이블 구조를 다시 조회합니다.
mysql> SHOW CREATE TABLE DemoTable;
출력 결과를 이전 결과와 비교하면, 새로 추가된 StudentCountryName 컬럼이 구조에 포함된 것을 확인할 수 있습니다.
+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| DemoTable | CREATE TABLE `DemoTable` ( `StudentId` int(11) NOT NULL AUTO_INCREMENT, `StudentName` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL, `StudentAge` int(11) DEFAULT NULL, `StudentMarks` int(11) DEFAULT NULL, `StudentCountryName` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL, PRIMARY KEY (`StudentId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci |
+---------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
정리
이처럼 SHOW CREATE TABLE 명령어를 사용하면 테이블에 저장된 데이터가 아니라 구조 자체의 변경 여부를 손쉽게 감지할 수 있습니다. 컬럼 추가·삭제, 데이터 타입 변경 등 DDL 작업 전후로 이 명령어를 실행하여 결과를 비교하면, 스키마 변경 사항을 정확하게 추적하고 관리할 수 있습니다.