MySQL 테이블의 제약 조건 확인하기
MySQL에서는 SHOW 명령어를 사용하여 테이블에 설정된 제약 조건(Constraints)을 손쉽게 확인할 수 있습니다. 기본 문법은 다음과 같습니다.
show create table yourTableName;
위 명령어를 실행하면 해당 테이블에 정의된 모든 제약 조건과 함께 테이블 엔진(ENGINE) 정보까지 한눈에 확인할 수 있습니다. 또한 각 컬럼의 이름과 데이터 타입 정보도 함께 출력되기 때문에, 테이블 구조를 전체적으로 파악하는 데 매우 유용합니다.
예제 테이블 생성
실제로 위 MySQL 구문이 어떻게 동작하는지 이해하기 위해, 먼저 예제용 테이블을 하나 만들어 보겠습니다.
mysql> create table ShowConstraintsDemo
-> (
-> BookId int not null,
-> BookName varchar(200) not null,
-> BookAuthor varchar(200) Unique not null,
-> Primary key(BookId,BookName)
-> );
Query OK, 0 rows affected (1.04 sec)위 테이블에는 세 가지 주요 제약 조건이 적용되어 있습니다.
- NOT NULL: BookId와 BookName, BookAuthor 컬럼은 NULL 값을 허용하지 않습니다.
- PRIMARY KEY: BookId와 BookName 두 컬럼을 조합하여 복합 기본키로 설정했습니다.
- UNIQUE: BookAuthor 컬럼에는 고유(Unique) 제약 조건이 걸려 있어 중복된 저자명을 저장할 수 없습니다.
제약 조건 조회 실행
이제 앞서 소개한 문법을 적용하여 테이블의 제약 조건을 확인해 보겠습니다.
mysql> show create table ShowConstraintsDemo;
실행 결과, 아래와 같이 테이블에 정의된 모든 제약 조건이 출력됩니다.
+---------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +---------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | ShowConstraintsDemo | CREATE TABLE `showconstraintsdemo` ( `BookId` int(11) NOT NULL, `BookName` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL, `BookAuthor` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL, PRIMARY KEY (`BookId`,`BookName`), UNIQUE KEY `BookAuthor` (`BookAuthor`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci | +---------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.05 sec)
결과 해석
출력 결과를 살펴보면 다음과 같은 핵심 정보를 확인할 수 있습니다.
- NOT NULL 제약: 세 컬럼 모두 NOT NULL로 선언되어 있습니다.
- 복합 기본키:
PRIMARY KEY (`BookId`,`BookName`)구문을 통해 두 컬럼이 조합된 기본키임을 알 수 있습니다. - 고유 키:
UNIQUE KEY `BookAuthor`부분에서 BookAuthor 컬럼의 유니크 제약 조건을 확인할 수 있습니다. - 스토리지 엔진 및 문자셋: 테이블은 InnoDB 엔진을 사용하며, 문자셋은 utf8mb4, 콜레이션은 utf8mb4_unicode_ci로 설정되어 있습니다.
이처럼 SHOW CREATE TABLE 명령어 하나만으로도 테이블의 전체 DDL(데이터 정의어)을 확인할 수 있어, 데이터베이스 스키마 분석이나 마이그레이션 작업 시 매우 실용적으로 활용할 수 있습니다.