Để ngăn chặn dữ liệu trùng lặp, bạn có thể sử dụng UNIQUE INDEX:
alter table yourTableName ADD UNIQUE INDEX(yourColumnName1, yourColumnName2,....N);
Trước tiên, tạo một bảng:
mysql> create table DemoTable -> ( -> Value1 int, -> Value2 int -> ); Query OK, 0 rows affected (0.55 sec)
Thêm unique index:
mysql> alter table DemoTable ADD UNIQUE INDEX(Value1, Value2); Query OK, 0 rows affected (0.54 sec) Records: 0 Duplicates: 0 Warnings: 0
Chèn dữ liệu bằng lệnh INSERT IGNORE thay vì INSERT thông thường. Nếu bản ghi không trùng lặp, MySQL sẽ chèn như bình thường. Nếu trùng lặp, từ khóa IGNORE sẽ khiến MySQL bỏ qua mà không báo lỗi.
mysql> insert ignore into DemoTable values(10,20); Query OK, 1 row affected (0.14 sec) mysql> insert ignore into DemoTable values(10,20); Query OK, 0 rows affected, 1 warning (0.10 sec)
Hiển thị tất cả bản ghi:
mysql> select *from DemoTable;
Kết quả
+--------+--------+ | Value1 | Value2 | +--------+--------+ | 10 | 20 | +--------+--------+ 1 row in set (0.00 sec)