INSERT IGNORE INTO คือคำสั่งป้องกันการเพิ่มข้อมูลซ้ำลงในตารางข้อมูล เฉพาะ field ที่ต้องการ ทำงานร่วมกับ UNIQUE โดยบทความนี้ใช้ฐานข้อมูล MySQL หรือ MariaDB มีรายละเอียดดังนี้
ตัวอย่าง ข้อมูลตาราง book
+-------+-----------+------+-----+---------+--------+
| Field | Type | Null | Key | Default | Extra |
+-------+-----------+------+-----+---------+--------+
| id | int(11) | NO | PRI | NULL | auto |
| title | char(255) | NO | UNI | NULL | |
+-------+-----------+------+-----+---------+--------+
ตัวอย่าง การใช้ INSERT IGNORE INTO
1. สมมติต้องการให้ field title ของตาราง book ไม่รับค่าซ้ำต้องแก้ไข field ดังกล่าวให้เป็น UNIQUE ด้วยคำสั่ง
ALTER TABLE book add UNIQUE ( title )
2. ทดลองใช้คำสั่ง INSERT IGNORE INTO เพื่อดูผลลัพธ์การป้องกันการเพิ่มข้อมูลซ้ำลงใน field ที่เป็น UNIQUE
INSERT IGNORE INTO book ( id, title )
VALUES
( NULL, 'SQL' ),
( NULL, 'SQL' ),
( NULL, 'SQL' ),
( NULL, 'SQL' ),
( NULL, 'SQL' )
ผลลัพธ์
1 row inserted. Inserted row id: 7 (Query took 0.0137 seconds.)
INSERT IGNORE INTO จากคำสั่ง SQL มีการเพิ่มข้อมูล ‘SQL’ ทั้งหมด 5 ข้อมูล แต่พอเวลาทำงานจริงข้อมูล ‘SQL’ จะถูกเพิ่ม 1 ข้อมูลเท่านั้น ส่วนที่เหลือที่เป็นข้อมูลซ้ำจะถูกปฏิเสธ เพื่อป้องกันการเพิ่มข้อมูลซ้ำลงใน field ที่เป็น UNIQUE คือ title ของตาราง book