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

Làm thế nào để ngăn chặn chèn kép MySQL (mục nhập trùng lặp)?

Để ngăn mục nhập trùng lặp, hãy thêm ràng buộc UNIQUE. Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable
(
   Id int,
   Name varchar(100)
);
Query OK, 0 rows affected (0.79 sec)

Đây là truy vấn để ngăn chặn chèn kép MySQL bằng cách sử dụng UNIQUE -

mysql> alter table DemoTable add constraint id_NameUnKey UNIQUE(Id,Name);
Query OK, 0 rows affected (0.82 sec)
Records: 0 Duplicates: 0 Warnings: 0

Chèn bản ghi trong bảng bằng lệnh chèn. Khi chúng tôi thử lại cùng một bản ghi, thì lỗi "Mục nhập trùng lặp" sẽ hiển thị -

mysql> insert into DemoTable values(11,'John');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values(12,'John');
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable values(11,'John');
ERROR 1062 (23000): Duplicate entry '11-John' for key 'id_NameUnKey'

Hiển thị các bản ghi từ bảng bằng lệnh select -

mysql> select *from DemoTable;

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

+------+------+
| Id   | Name |
+------+------+
| 11   | John |
| 12   | John |
+------+------+
2 rows in set (0.00 sec)