เกิดเมื่อพยายามเพิ่มค่าซ้ำในคอลัมน์ที่มี UNIQUE KEY หรือ PRIMARY KEY
สร้างตารางมี Unique Key รวม 2 คอลัมน์
mysql> create table DemoTable776 (
FirstValue int,
SecondValue int,
unique key(FirstValue,SecondValue) );
Query OK, 0 rows affected (0.74 sec)
เพิ่มข้อมูล (ครั้งที่ 4 ซ้ำกับครั้งแรก)
mysql> insert into DemoTable776 values(10,20); Query OK, 1 row affected (0.16 sec) mysql> insert into DemoTable776 values(10,40); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable776 values(40,20); Query OK, 1 row affected (0.26 sec) mysql> insert into DemoTable776 values(10,20); ERROR 1062 (23000): Duplicate entry '10-20' for key 'FirstValue'
ข้อมูลที่บันทึกได้ (3 แถวแรก)
mysql> select * from DemoTable776;
+------------+-------------+ | FirstValue | SecondValue | +------------+-------------+ | 10 | 20 | | 10 | 40 | | 40 | 20 | +------------+-------------+ 3 rows in set (0.00 sec)
วิธีแก้: 1) ตรวจสอบข้อมูลก่อน INSERT 2) ใช้ INSERT IGNORE 3) ใช้ ON DUPLICATE KEY UPDATE