SQL insert ข้อมูลห้ามซ้ำ ด้วย INSERT IGNORE บทความนี้สอนวิธีการกำหนดให้ field ห้ามเพิ่มข้อมูลที่ซ้ำ โดยกำหนด key ให้เป็น UNIQUE พร้อมกับใช้คำสั่ง INSERT IGNORE สามารถเขียนคำสั่งได้ดังนี้
ตัวอย่าง SQL insert ข้อมูลห้ามซ้ำ ด้วย INSERT IGNORE
1. สมมติโครงสร้างตาราง test มีรายละเอียดตามด้านล่าง ต้องการให้ field title ห้ามเพิ่มข้อมูลซ้ำ
+-------+-----------+------+-----+---------+--------+
| Field | Type | Null | Key | Default | Extra |
+-------+-----------+------+-----+---------+--------+
| id | int(11) | NO | PRI | NULL | auto |
| title | char(255) | NO | | NULL | |
+-------+-----------+------+-----+---------+--------+
2. เพิ่ม key UNIQUE ให้กับ field title ของตาราง test
ALTER TABLE test add UNIQUE ( title )
3. ทดลองใช้คำสั่ง INSERT IGNORE เพื่อดูว่าสามารถป้องกันการเพิ่มข้อมูลซ้ำได้หรือไม่ โดยการรันคำสั่งด้านล่าง
INSERT IGNORE INTO test ( id, title )
VALUES
( NULL, 'MySQL' ),
( NULL, 'MySQL' ),
( NULL, 'MySQL' )
ผลลัพธ์
Query OK, 1 row affected, 2 warnings (0.009 sec)
Records: 3 Duplicates: 2 Warnings: 2
จากคำสั่ง SQL มีการเพิ่ม ‘MySQL’ ลงใน field ที่เป็น UNIQUE ได้ผลลัพธ์คือเพิ่มสำหรับ 1 ข้อมูล ส่วนอีก 2 ข้อมูลเพิ่มไม่ได้เนื่องจากเป็นข้อมูลที่ซ้ำ และ field title ไม่รับข้อมูลซ้ำตามคุณสมบัติของ key UNIQUE