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

Làm cách nào để ngăn các hàng trùng lặp trong MySQL INSERT?

Đối với điều này, bạn cần sử dụng PHÍM DUY NHẤT cho cột. Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable
(
   Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   FirstName varchar(30),
   UNIQUE KEY(FirstName)
);
Query OK, 0 rows affected (1.76 sec)

Chèn một số bản ghi trong bảng bằng lệnh chèn. Bây giờ, chúng tôi cũng đang chèn các bản ghi trùng lặp như “David”, nhưng nó sẽ không được chèn hai lần, vì chúng tôi đã đặt cột là TỪ KHÓA DUY NHẤT -

mysql> insert ignore into DemoTable(FirstName) values('Chris');
Query OK, 1 row affected (0.42 sec)
mysql> insert ignore into DemoTable(FirstName) values('David');
Query OK, 1 row affected (0.12 sec)
mysql> insert ignore into DemoTable(FirstName) values('Chris');
Query OK, 0 rows affected, 1 warning (0.17 sec)
mysql> insert ignore into DemoTable(FirstName) values('Sam');
Query OK, 1 row affected (0.11 sec)
mysql> insert ignore into DemoTable(FirstName) values('David');
Query OK, 0 rows affected, 1 warning (0.07 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;

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

+----+-----------+
| Id | FirstName |
+----+-----------+
|  1 | Chris     |
|  2 | David     |
|  4 | Sam       |
+----+-----------+
3 rows in set (0.00 sec)