Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm thế nào để ngăn chặn INSERT trùng lặp trong MySQL?


Đối với điều này, bạn có thể sử dụng CHỈ SỐ DUY NHẤT -

alter table yourTableName ADD UNIQUE INDEX(yourColumnName1, yourColumnName2,....N);

Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable
   -> (
   -> Value1 int,
   -> Value2 int
   -> );
Query OK, 0 rows affected (0.55 sec)

Sau đây là truy vấn để thêm chỉ mục duy nhất -

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 một số bản ghi vào bảng bằng lệnh chèn -

Lưu ý - Sử dụng lệnh INSERT IGNORE thay vì lệnh INSERT. Nếu một bản ghi không sao chép một bản ghi hiện có, thì MySQL sẽ chèn nó như bình thường. Nếu bản ghi là bản sao, thì từ khóa IGNORE yêu cầu MySQL loại bỏ nó một cách âm thầm mà không tạo ra 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ả các bản ghi từ bảng bằng câu lệnh select -

mysql> select *from DemoTable;

Đầu ra

Điều này sẽ tạo ra kết quả sau -

+--------+--------+
| Value1 | Value2 |
+--------+--------+
|     10 |   20   |
+--------+--------+
1 row in set (0.00 sec)