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

วิธีทำให้คอลัมน์เดิมเป็น UNIQUE ใน MySQL

ใช้ ALTER TABLE ... ADD UNIQUE(column_name) เพื่อเพิ่ม Constraint UNIQUE ให้คอลัมน์ที่มีอยู่แล้ว

สร้างตาราง

mysql> CREATE TABLE AddingUnique (
    -> Id INT,
    -> name VARCHAR(100)
    -> );

เพิ่ม UNIQUE Constraint

mysql> ALTER TABLE AddingUnique ADD UNIQUE(name);
Query OK, 0 rows affected (0.60 sec)

ทดสอบ Insert ข้อมูลซ้ำ

mysql> INSERT INTO AddingUnique VALUES (1, 'John');     -- OK
mysql> INSERT INTO AddingUnique VALUES (1, 'John');     -- ERROR 1062: Duplicate entry 'John' for key 'name'
mysql> INSERT INTO AddingUnique VALUES (2, 'Carol');    -- OK
mysql> INSERT INTO AddingUnique VALUES (3, 'John');     -- ERROR 1062
mysql> INSERT INTO AddingUnique VALUES (4, 'Smith');    -- OK

ข้อมูลสุดท้าย:

+------+-------+
| Id   | name  |
+------+-------+
| 1    | John  |
| 2    | Carol |
| 4    | Smith |
+------+-------+
ข้อควรระวัง: หากตารางมีข้อมูลซ้ำอยู่แล้ว ADD UNIQUE จะล้มเหลว ต้องลบข้อมูลซ้ำก่อน หรือสร้าง Index แบบ Non-Unique ก่อน แล้วค่อย Clean Data