MySQL 복합 기본 키(Composite Primary Key) 설정 방법
네, 가능합니다. MySQL에서는 PRIMARY KEY(column1, column2) 형태의 구문을 사용하여 두 개 이상의 컬럼으로 구성된 복합 기본 키를 만들 수 있습니다. 복합 기본 키는 여러 컬럼의 조합이 테이블 내에서 고유한 값을 갖도록 보장하며, 개별 컬럼 자체는 중복 값을 가질 수 있다는 특징이 있습니다.
복합 기본 키를 정의하는 기본 문법은 다음과 같습니다.
PRIMARY KEY(yourColumnName1,yourColumnName2);
테이블 생성 예제
먼저 복합 기본 키가 적용된 테이블을 생성해 보겠습니다.
mysql> create table DemoTable
-> (
-> StudentFirstName varchar(100),
-> StudentLastName varchar(100),
-> StudentAge int,
-> StudentCountryName varchar(100),
-> PRIMARY KEY(StudentFirstName,StudentLastName)
-> );
Query OK, 0 rows affected (0.74 sec)
위 예제에서는 StudentFirstName과 StudentLastName 두 컬럼이 함께 복합 기본 키로 지정되었습니다. 즉, 이름과 성의 조합은 반드시 고유해야 하지만, 이름 또는 성만 중복되는 경우는 허용됩니다.
테이블 구조 확인
DESC 명령어를 사용하여 생성된 테이블의 구조를 확인해 보겠습니다.
mysql> desc DemoTable;
출력 결과
위 명령어를 실행하면 다음과 같은 결과가 출력됩니다.
+--------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+--------------+------+-----+---------+-------+
| StudentFirstName | varchar(100) | NO | PRI | NULL | |
| StudentLastName | varchar(100) | NO | PRI | NULL | |
| StudentAge | int(11) | YES | | NULL | |
| StudentCountryName | varchar(100) | YES | | NULL | |
+--------------------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
결과에서 확인할 수 있듯이 StudentFirstName과 StudentLastName 컬럼의 Key 값이 모두 PRI로 표시되고, Null 값 역시 NO로 설정되어 있습니다. 이는 두 컬럼이 복합 기본 키로 성공적으로 지정되었으며, 해당 컬럼에는 NULL 값이 저장될 수 없음을 의미합니다.