Devdit
 

INSERT IGNORE INTO คือคำสั่งอะไร ใช้งานอย่างไร

3.8K

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

แก้ไข 2 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ