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

MySQL 데이터베이스 테이블에서 복합 기본 키(Composite Primary Key)를 식별하는 방법

MySQL에서 특정 테이블에 복합 기본 키(Composite Primary Key)가 설정되어 있는지 확인하려면 information_schema.KEY_COLUMN_USAGE 뷰와 집계 함수 count(*)를 함께 사용하면 됩니다. 조회 결과가 1보다 크다면, 해당 테이블에는 두 개 이상의 컬럼으로 구성된 복합 기본 키가 존재한다는 의미입니다.

1단계: 테이블 생성하기

먼저 예제로 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable1324
-> (
-> StudentId int,
-> StudentName varchar(20),
-> StudentAge int,
-> StudentCountryName varchar(20)
-> );
Query OK, 0 rows affected (0.52 sec)

2단계: 복합 기본 키 추가하기

다음으로 ALTER TABLE 문을 사용해 세 개의 컬럼(StudentId, StudentAge, StudentCountryName)으로 구성된 복합 기본 키를 추가합니다.

mysql> alter table DemoTable1324 ADD CONSTRAINT constr_IdAgeCountry PRIMARY KEY (StudentId, StudentAge, StudentCountryName);
Query OK, 0 rows affected (1.29 sec)
Records: 0 Duplicates: 0 Warnings: 0

3단계: 복합 기본 키 식별 쿼리 실행하기

이제 information_schema.KEY_COLUMN_USAGE 뷰를 조회하여 해당 테이블의 복합 기본 키 여부를 확인할 수 있습니다.

mysql> select count(*) AS Total
-> from information_schema.KEY_COLUMN_USAGE
-> where table_name='DemoTable1324' and table_schema=database();

실행 결과

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

+-------+
| Total |
+-------+
| 3 |
+-------+
1 row in set, 2 warnings (0.76 sec)

결과 해석하기

결과값이 3으로 반환되었습니다. 이는 해당 테이블의 기본 키가 세 개의 컬럼(StudentId, StudentAge, StudentCountryName)으로 구성되어 있음을 의미합니다. 만약 단일 컬럼 기본 키라면 결과값은 1이 되고, 기본 키가 전혀 없는 테이블이라면 0이 반환됩니다.

참고로 table_schema=database() 조건을 사용하면 현재 접속 중인 데이터베이스로 검색 범위를 한정할 수 있어, 동일한 이름의 테이블이 다른 스키마에 있더라도 정확하게 조회할 수 있습니다.