কম্পিউটার টিউটোরিয়াল

MySQL에서 기본 키(Primary Key) 삭제하기

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는 자동 해제됩니다. 외래 키가 참조 중이면 선행 삭제해야 합니다. 대용량 테이블에선 테이블 재구성으로 시간이 오래 걸립니다.

  1. MySQL-এ information_schema দিয়ে কম্পোজিট প্রাইমারি কী চিহ্নিত করা

  2. MySQL-এ INFORMATION_SCHEMA ব্যবহার করে কোন কলাম PRIMARY KEY সেটা যাচাই করা

  3. MySQL-এ প্রাইমারি কী রিসেট করা (TRUNCATE + ALTER TABLE)

  4. MySQL-এ প্রাইমারি কীকে অন্য টেবিলে ফরেন কী হিসেবে রেফার করা