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

MySQL에서 캐스케이드(CASCADE) 확인하는 방법 – SHOW CREATE TABLE 완벽 가이드

MySQL에서 테이블에 설정된 캐스케이드(CASCADE) 옵션을 비롯해 외래 키, 인덱스, 기본 키 등 테이블의 전체 구조를 확인하려면 SHOW CREATE TABLE 명령어를 사용하면 됩니다. 이 명령은 해당 테이블을 생성할 때 실제로 적용된 CREATE TABLE 문을 그대로 출력해 주기 때문에, ON DELETE CASCADE, ON UPDATE CASCADE 같은 제약 조건도 한눈에 파악할 수 있습니다.

1. 예제 테이블 생성하기

먼저 실습에 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable1378
    -> (
    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> EmployeeId varchar(20),
    -> EmployeeFirstName varchar(20),
    -> EmployeeLastName varchar(20),
    -> EmployeeCountryName varchar(40),
    -> EmployeeAge int,
    -> EmployeeSalary int,
    -> UNIQUE(EmployeeFirstName,EmployeeSalary),
    -> INDEX First_Last_NameIndex(EmployeeFirstName,EmployeeLastName)
    -> );
Query OK, 0 rows affected (0.93 sec)

2. SHOW CREATE TABLE로 테이블 구조 확인하기

테이블 생성이 완료되었다면, 아래 명령어로 캐스케이드 및 각종 제약 조건을 확인할 수 있습니다.

mysql> show create table DemoTable1378;

실행하면 다음과 같은 결과가 출력됩니다.

+---------------+--------------------------------------------------------------+
| Table         | Create Table                                                 |
+---------------+--------------------------------------------------------------+
| DemoTable1378 | CREATE TABLE `demotable1378` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `EmployeeId` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
  `EmployeeFirstName` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
  `EmployeeLastName` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
  `EmployeeCountryName` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL,
  `EmployeeAge` int(11) DEFAULT NULL,
  `EmployeeSalary` int(11) DEFAULT NULL,
  PRIMARY KEY (`Id`),
  UNIQUE KEY `EmployeeFirstName` (`EmployeeFirstName`,`EmployeeSalary`),
  KEY `First_Last_NameIndex` (`EmployeeFirstName`,`EmployeeLastName`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci |
+---------------+--------------------------------------------------------------+
1 row in set (0.02 sec)

3. 결과 해석하기

출력된 CREATE TABLE 문에는 다음과 같은 핵심 정보가 포함되어 있습니다.

  • PRIMARY KEY: 테이블의 기본 키 설정 (Id 컬럼, AUTO_INCREMENT 적용)
  • UNIQUE KEY: 중복을 허용하지 않는 복합 유니크 인덱스 (EmployeeFirstName, EmployeeSalary)
  • KEY(INDEX): 일반 인덱스 (First_Last_NameIndex)
  • ENGINE / CHARSET / COLLATE: 스토리지 엔진과 문자셋 정보

만약 테이블에 외래 키 캐스케이드가 설정되어 있다면, 출력 결과에 CONSTRAINT ... FOREIGN KEY (...) REFERENCES ... ON DELETE CASCADE ON UPDATE CASCADE 형태로 함께 표시됩니다.

4. 더 읽기 쉽게 보는 팁

출력 결과가 너무 길어 표 형태로 보기 불편하다면, 명령어 뒤에 \G를 붙여 세로(수직) 형식으로 출력할 수 있습니다.

mysql> show create table DemoTable1378\G

또한 외래 키 관계만 집중적으로 확인하고 싶다면 information_schema.KEY_COLUMN_USAGE 또는 information_schema.REFERENTIAL_CONSTRAINTS 뷰를 조회하는 방법도 유용합니다.