การลบ Primary Key ใน MySQL
สามารถลบ Primary Key ออกจากตารางที่มีอยู่แล้วได้โดยใช้คำสั่ง ALTER TABLE ... DROP PRIMARY KEY
Syntax
ALTER TABLE yourTableName DROP PRIMARY KEY;
ตัวอย่างการใช้งาน
สร้างตารางที่มี Primary Key:
mysql> CREATE TABLE DemoTable (
UserId INT NOT NULL PRIMARY KEY
);
Query OK, 0 rows affected (0.58 sec)
ตรวจสอบโครงสร้างตาราง (เห็น Key = PRI):
mysql> DESC DemoTable;
+--------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+---------+------+-----+---------+-------+ | UserId | int(11) | NO | PRI | NULL | | +--------+---------+------+-----+---------+-------+ 1 row in set (0.01 sec)
ลบ Primary Key:
mysql> ALTER TABLE DemoTable DROP PRIMARY KEY; Query OK, 0 rows affected (1.51 sec)
ตรวจสอบอีกครั้ง (Key หายไป ไม่มี PRI):
mysql> DESC DemoTable;
+--------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+---------+------+-----+---------+-------+ | UserId | int(11) | NO | | NULL | | +--------+---------+------+-----+---------+-------+ 1 row in set (0.01 sec)
ข้อควรระวัง
- หลังลบ Primary Key คอลัมน์ยังคงเป็น
NOT NULLแต่ไม่มี Index และไม่บังคับความ Unique - หากต้องการลบ Primary Key และเพิ่มใหม่ในครั้งเดียว ใช้:
ALTER TABLE DemoTable DROP PRIMARY KEY, ADD PRIMARY KEY (newColumn);
- ไม่สามารถลบ Primary Key ได้หากถูกอ้างอิงโดย Foreign Key จากตารางอื่น (ต้องลบ FK ก่อน)
- การลบ PK บนตารางใหญ่อาจใช้เวลานานเพราะต้อง Rebuild Index
คำสั่งเกี่ยวข้อง
- เพิ่ม PK:
ALTER TABLE tbl ADD PRIMARY KEY (col) - ดู Index:
SHOW INDEX FROM tbl - ลบ Index ทั่วไป:
ALTER TABLE tbl DROP INDEX idx_name