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

วิธีป้องกันการ INSERT ข้อมูลซ้ำใน MySQL

เพื่อป้องกันการแทรกข้อมูลซ้ำ ให้ใช้ UNIQUE INDEX บนคอลัมน์ที่ต้องการ:

ALTER TABLE yourTableName ADD UNIQUE INDEX(yourColumnName1, yourColumnName2, ... N);

ตัวอย่างการใช้งาน

1. สร้างตาราง

mysql> create table DemoTable 
    -> ( 
    -> Value1 int, 
    -> Value2 int 
    -> ); 
Query OK, 0 rows affected (0.55 sec)

2. เพิ่ม Unique Index

mysql> alter table DemoTable ADD UNIQUE INDEX(Value1, Value2); 
Query OK, 0 rows affected (0.54 sec) Records: 0 Duplicates: 0 Warnings: 0

3. แทรกข้อมูลด้วย INSERT IGNORE

ใช้คำสั่ง INSERT IGNORE แทน INSERT ธรรมดา หากข้อมูลไม่ซ้ำ จะถูกแทรกตามปกติ หากซ้ำ จะถูกละเว้นโดยไม่แสดงข้อผิดพลาด

mysql> insert ignore into DemoTable values(10,20); 
Query OK, 1 row affected (0.14 sec) 
mysql> insert ignore into DemoTable values(10,20); 
Query OK, 0 rows affected, 1 warning (0.10 sec)

4. แสดงข้อมูลทั้งหมด

mysql> select * from DemoTable;

ผลลัพธ์

+--------+--------+
| Value1 | Value2 |
+--------+--------+
|     10 |     20 |
+--------+--------+
1 row in set (0.00 sec)

คำแนะนำเพิ่มเติม: สามารถใช้ ON DUPLICATE KEY UPDATE ได้อีกวิธีหนึ่ง หากต้องการอัปเดตค่าอื่นเมื่อพบข้อมูลซ้ำ