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

MySQL 기존 테이블에서 복합 PRIMARY KEY(기본 키) 제약 조건을 제거하는 방법

MySQL에서 이미 생성된 테이블에 여러 열에 걸쳐 적용된 복합 PRIMARY KEY(기본 키) 제약 조건이 설정되어 있을 때, 이를 제거하려면 ALTER TABLE 문과 함께 DROP PRIMARY KEY 구문을 사용하면 됩니다.

복합 PRIMARY KEY란?

복합 PRIMARY KEY는 두 개 이상의 열을 조합하여 하나의 기본 키로 지정하는 방식입니다. 단일 열만으로는 고유성을 보장할 수 없지만, 여러 열의 조합으로 각 행을 고유하게 식별해야 하는 경우에 유용하게 사용됩니다.

예제: Room_allotment 테이블

다음과 같이 'Room_allotment' 테이블에는 'id'와 'Name' 두 열에 복합 PRIMARY KEY가 적용되어 있다고 가정해 보겠습니다.

mysql> describe room_allotment;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   | PRI | 0       |       |
| Name   | varchar(20) | NO   | PRI |         |       |
| RoomNo | int(11)     | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.06 sec)

'Key' 열에서 'id'와 'Name' 두 필드 모두 PRI로 표시되어 있는 것을 확인할 수 있습니다. 이는 두 열이 함께 복합 기본 키를 구성하고 있다는 의미입니다.

복합 PRIMARY KEY 제거하기

복합 PRIMARY KEY 제약 조건을 제거하려면 아래와 같이 ALTER TABLE 문을 실행합니다.

mysql> Alter table room_allotment DROP PRIMARY KEY;
Query OK, 0 rows affected (0.19 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> describe room_allotment;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id     | int(11)     | NO   |     | 0       |       |
| Name   | varchar(20) | NO   |     |         |       |
| RoomNo | int(11)     | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.07 sec)

실행 결과를 보면 'id'와 'Name' 열의 'Key' 값이 더 이상 PRI로 표시되지 않습니다. 즉, 해당 테이블의 복합 PRIMARY KEY 제약 조건이 성공적으로 제거된 것입니다.

주의 사항

PRIMARY KEY를 제거할 때 몇 가지 유의해야 할 점이 있습니다.

  • AUTO_INCREMENT 속성 확인: 기본 키 열에 AUTO_INCREMENT가 설정되어 있다면, 먼저 AUTO_INCREMENT 속성을 제거한 후 PRIMARY KEY를 삭제해야 합니다. 그렇지 않으면 오류가 발생합니다.
  • 데이터 무결성: 기본 키를 제거하면 중복 데이터가 입력될 수 있으므로, 제거 전에 테이블의 용도와 데이터 무결성 요구 사항을 신중히 검토하는 것이 좋습니다.
  • 외래 키 참조: 다른 테이블이 해당 기본 키를 외래 키로 참조하고 있다면, 참조 관계를 먼저 정리해야 제약 조건을 삭제할 수 있습니다.