MySQL에서 테이블의 기본 키(PRIMARY KEY)를 삭제하려면 ALTER TABLE 문을 사용해야 합니다. ALTER TABLE로 테이블 구조를 변경한 뒤, DROP PRIMARY KEY 절을 함께 사용하면 기존 기본 키를 손쉽게 제거할 수 있습니다.
기본 문법
ALTER TABLE yourTableName DROP PRIMARY KEY;
실습 예제
먼저 기본 키가 설정된 테이블을 생성해 보겠습니다.
mysql> create table DemoTable
-> (
-> StudentId int NOT NULL,
-> StudentName varchar(20),
-> StudentAge int,
-> primary key(StudentId)
-> );
Query OK, 0 rows affected (0.48 sec)
1단계: 테이블 구조 확인
DESC 명령어를 사용하여 현재 테이블의 구조를 확인합니다.
mysql> desc DemoTable;
실행 결과는 다음과 같습니다. StudentId 컬럼의 Key 항목이 PRI로 표시되어 있는 것을 확인할 수 있습니다.
+-------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| StudentId | int(11) | NO | PRI | NULL | |
| StudentName | varchar(20) | YES | | NULL | |
| StudentAge | int(11) | YES | | NULL | |
+-------------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
2단계: 기본 키 삭제
이제 ALTER TABLE과 DROP PRIMARY KEY를 사용하여 기본 키를 삭제합니다.
mysql> alter table DemoTable drop primary key;
Query OK, 0 rows affected (1.70 sec)
Records: 0 Duplicates: 0 Warnings: 0
3단계: 삭제 결과 확인
기본 키가 정상적으로 삭제되었는지 다시 한번 테이블 구조를 확인해 보겠습니다.
mysql> desc DemoTable;
실행 결과를 보면 StudentId 컬럼의 Key 항목에서 PRI 표시가 사라진 것을 확인할 수 있습니다. 이는 기본 키가 성공적으로 제거되었음을 의미합니다.
+-------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| StudentId | int(11) | NO | | NULL | |
| StudentName | varchar(20) | YES | | NULL | |
| StudentAge | int(11) | YES | | NULL | |
+-------------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
주의사항
기본 키를 삭제할 때는 몇 가지 유의할 점이 있습니다.
AUTO_INCREMENT 컬럼이 있는 경우: 해당 컬럼에 AUTO_INCREMENT 속성이 설정되어 있다면, 먼저 AUTO_INCREMENT를 제거한 후 기본 키를 삭제해야 합니다. 그렇지 않으면 오류가 발생합니다.
mysql> alter table DemoTable modify StudentId int NOT NULL;
mysql> alter table DemoTable drop primary key;
데이터 무결성: 기본 키는 테이블 내 레코드의 고유성을 보장하는 중요한 제약 조건입니다. 삭제 전에 해당 테이블을 참조하는 외래 키(Foreign Key)가 있는지 반드시 확인하고, 애플리케이션 로직에 미치는 영향을 검토한 후 진행하는 것이 좋습니다.