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

ตั้งค่า Primary Key ให้คอลัมน์ที่มีอยู่แล้วใน MySQL

หากตารางมีอยู่แล้วและต้องการกำหนด Primary Key ให้คอลัมน์ที่มีอยู่ ให้ใช้คำสั่ง ALTER TABLE ... ADD PRIMARY KEY

รูปแบบคำสั่ง

ALTER TABLE yourTableName ADD PRIMARY KEY(yourColumnName);

ตัวอย่างขั้นตอน

1. สร้างตารางโดยไม่มี Primary Key

mysql> CREATE TABLE AddingPrimaryKeyDemo (
    -> UniversityId INT,
    -> UniversityName VARCHAR(200)
    -> );
Query OK, 0 rows affected (1.16 sec)

2. ตรวจสอบโครงสร้างตาราง (ก่อนเพิ่ม PK)

mysql> DESC AddingPrimaryKeyDemo;
+----------------+--------------+------+-----+---------+-------+
| Field          | Type         | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+-------+
| UniversityId   | int(11)      | YES  |     | NULL    |       |
| UniversityName | varchar(200) | YES  |     | NULL    |       |
+----------------+--------------+------+-----+---------+-------+
2 rows in set (0.09 sec)

สังเกตคอลัมน์ Key ว่าง และ Null เป็น YES

3. เพิ่ม Primary Key

mysql> ALTER TABLE AddingPrimaryKeyDemo ADD PRIMARY KEY(UniversityId);
Query OK, 0 rows affected (1.48 sec)

4. ตรวจสอบอีกครั้ง (หลังเพิ่ม PK)

mysql> DESC AddingPrimaryKeyDemo;
+----------------+--------------+------+-----+---------+-------+
| Field          | Type         | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+-------+
| UniversityId   | int(11)      | NO   | PRI | NULL    |       |
| UniversityName | varchar(200) | YES  |     | NULL    |       |
+----------------+--------------+------+-----+---------+-------+
2 rows in set (0.04 sec)

ตอนนี้คอลัมน์ Key แสดง PRI และ Null กลายเป็น NO แสดงว่า Primary Key ทำงานแล้ว

ข้อจำกัดสำคัญ

  • คอลัมน์ต้องไม่มีค่า NULL อยู่แล้ว
  • ค่าต้องไม่ซ้ำกัน (Unique)
  • หากมีข้อมูลซ้ำหรือ NULL จะเกิด Error และไม่สามารถเพิ่ม PK ได้

เคล็ดลับ: ตรวจสอบข้อมูลก่อนด้วย SELECT UniversityId, COUNT(*) FROM AddingPrimaryKeyDemo GROUP BY UniversityId HAVING COUNT(*) > 1;