ALTER TABLE ... DROP PRIMARY KEY로 테이블의 기본 키 제약 조건을 제거할 수 있습니다.
테이블 생성 (PK 포함)
mysql> CREATE TABLE DemoTable (
-> StudentId INT NOT NULL,
-> StudentName VARCHAR(20),
-> StudentAge INT,
-> PRIMARY KEY(StudentId)
-> );
Query OK, 0 rows affected (0.48 sec)
테이블 구조 확인 (PK 있음)
mysql> DESC DemoTable;
+-------------+-------------+------+-----+---------+-------+ | 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)
기본 키 삭제
mysql> ALTER TABLE DemoTable DROP PRIMARY KEY; Query OK, 0 rows affected (1.70 sec) Records: 0 Duplicates: 0 Warnings: 0
구조 재확인 (PK 제거됨)
mysql> DESC DemoTable;
+-------------+-------------+------+-----+---------+-------+ | 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)
주의: 기본 키를 삭제하면 NOT NULL 속성은 남아있지만 AUTO_INCREMENT는 자동 해제됩니다. 외래 키가 참조 중이면 선행 삭제해야 합니다. 대용량 테이블에선 테이블 재구성으로 시간이 오래 걸립니다.