MySQL에서 ALTER TABLE 문과 DROP 키워드를 함께 사용하면 기존 테이블의 특정 열에 설정된 PRIMARY KEY(기본 키) 제약 조건을 손쉽게 제거할 수 있습니다.
예제
다음과 같이 'ID' 열에 PRIMARY KEY 제약 조건이 설정되어 있는 'Player' 테이블이 있다고 가정해 보겠습니다.
mysql> DESCRIBE Player; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | ID | int(11) | NO | PRI | NULL | | | Name | varchar(20) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ 2 rows in set (0.04 sec)
위 결과에서 'ID' 열의 Key 값이 PRI로 표시되어 있는 것을 확인할 수 있습니다. 이는 해당 열이 기본 키로 지정되어 있다는 의미입니다.
PRIMARY KEY 제거하기
이제 PRIMARY KEY 제약 조건을 제거하려면 다음과 같이 ALTER TABLE 문에 DROP PRIMARY KEY 구문을 사용하면 됩니다.
mysql> alter table Player DROP PRIMARY KEY; Query OK, 0 rows affected (0.31 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> DESCRIBE Player; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | ID | int(11) | NO | | NULL | | | Name | varchar(20) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ 2 rows in set (0.04 sec)
위 결과 집합을 보면 'ID' 열의 Key 항목이 비어 있는 것을 확인할 수 있습니다. 이는 해당 열의 PRIMARY KEY 제약 조건이 성공적으로 제거되었음을 의미합니다.
참고 사항
PRIMARY KEY를 제거하기 전에는 반드시 다음 사항을 확인해야 합니다.
- 해당 테이블을 참조하는 외래 키(Foreign Key)가 없는지 확인해야 합니다. 참조 중인 외래 키가 있다면 먼저 이를 삭제해야 오류가 발생하지 않습니다.
- AUTO_INCREMENT 속성이 설정된 열은 PRIMARY KEY와 함께 사용되므로, 기본 키를 제거하기 전에 AUTO_INCREMENT 속성을 먼저 제거해야 할 수 있습니다.