Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ลบ Primary Key ออกจากตาราง MySQL ด้วย ALTER TABLE DROP PRIMARY KEY

การลบ 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