Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 데이터베이스 구조 변경(데이터가 아닌)을 감지하는 방법

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 작업 전후로 이 명령어를 실행하여 결과를 비교하면, 스키마 변경 사항을 정확하게 추적하고 관리할 수 있습니다.