Devdit
 

SQL insert ข้อมูลห้ามซ้ำ ด้วย INSERT IGNORE

4.5K

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

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