Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Ngăn chặn hàng trùng lặp khi INSERT vào MySQL bằng UNIQUE KEY

Phương pháp

Định nghĩa cột (hoặc tổ hợp cột) là UNIQUE KEY khi tạo bảng, sau đó dùng INSERT IGNORE để bỏ qua bản ghi trùng lặp mà không báo lỗi.

1. Tạo bảng với UNIQUE KEY trên FirstName

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)

2. Chèn dữ liệu với INSERT IGNORE

mysql> insert ignore into DemoTable(FirstName) values('Chris');
mysql> insert ignore into DemoTable(FirstName) values('David');
mysql> insert ignore into DemoTable(FirstName) values('Chris');  -- trùng, bị bỏ qua
mysql> insert ignore into DemoTable(FirstName) values('Sam');
mysql> insert ignore into DemoTable(FirstName) values('David');  -- trùng, bị bỏ qua

3. Kết quả bảng

mysql> select * from DemoTable;
+----+-----------+
| Id | FirstName |
+----+-----------+
| 1  | Chris     |
| 2  | David     |
| 4  | Sam       |
+----+-----------+
3 rows in set (0.00 sec)

Lưu ý: INSERT IGNORE cũng bỏ qua các lỗi khác (ví dụ khóa ngoại). Cân nhắc dùng ON DUPLICATE KEY UPDATE nếu cần cập nhật khi trùng.