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.