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

MySQL에서 ALTER TABLE로 복합 기본 키(Composite Primary Key) 추가하기

MySQL에서 복합 기본 키(Composite Primary Key)를 추가하려면 ALTER 명령어를 사용하면 됩니다. 이번 글에서는 실제 예제를 통해 단계별로 살펴보겠습니다.

1. 데모 테이블 생성

먼저 예제로 사용할 테이블을 생성합니다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> create table CompositePrimaryKey
   -> (
   -> Id int,
   -> StudentName varchar(100),
   -> Age int
   -> );
Query OK, 0 rows affected (0.56 sec)

위 테이블에는 아직 기본 키가 전혀 설정되어 있지 않습니다. DESC 명령어를 사용해 테이블 구조를 직접 확인해 보겠습니다.

mysql> desc CompositePrimaryKey;

실행 결과는 다음과 같습니다.

+-------------+--------------+------+-----+---------+-------+
| Field       | Type         | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| Id          | int(11)      | YES  |     | NULL    |       |
| StudentName | varchar(100) | YES  |     | NULL    |       |
| Age         | int(11)      | YES  |     | NULL    |       |
+-------------+--------------+------+-----+---------+-------+
3 rows in set (0.09 sec)

출력 결과를 보면 Key 컬럼에 PRI 표시가 없습니다. 즉, 현재 어떠한 기본 키도 설정되어 있지 않다는 뜻입니다.

2. ALTER TABLE로 복합 기본 키 추가

이제 ALTER 명령어를 사용해 복합 기본 키를 추가해 보겠습니다. 쿼리는 다음과 같습니다.

mysql> ALTER table CompositePrimaryKey add primary key(Id,StudentName);
Query OK, 0 rows affected (1.26 sec)
Records: 0  Duplicates: 0  Warnings: 0

위 쿼리에서는 IdStudentName 두 개의 컬럼을 조합하여 복합 기본 키를 설정했습니다. 복합 기본 키는 두 컬럼 값의 조합이 항상 고유하도록 보장하며, 각 컬럼 단독으로는 중복이 허용될 수 있습니다.

3. 결과 확인

복합 기본 키가 정상적으로 적용되었는지 다시 DESC 명령어로 확인해 보겠습니다.

mysql> DESC CompositePrimaryKey;

실행 결과는 다음과 같습니다.

+-------------+--------------+------+-----+---------+-------+
| Field       | Type         | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| Id          | int(11)      | NO   | PRI | NULL    |       |
| StudentName | varchar(100) | NO   | PRI | NULL    |       |
| Age         | int(11)      | YES  |     | NULL    |       |
+-------------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

출력 결과를 보면 IdStudentName 컬럼의 Key 항목에 PRI가 표시되고, Null 항목도 NO로 변경된 것을 확인할 수 있습니다. 이는 복합 기본 키가 성공적으로 적용되었다는 의미입니다. 기본 키로 지정된 컬럼에는 NULL 값이 허용되지 않기 때문입니다.