Berikut adalah pendekatan menggunakan tautan yang disediakan @johnthexii (demo ) (hanya menggunakan MySQL, jadi tidak spesifik untuk Python)
CREATE TABLE UserNames (`username` varchar(35) unique, `duplicates` int);
INSERT INTO UserNames (`username`, `duplicates`)
VALUES ('stackoverflow.com', 0);
INSERT INTO UserNames (`username`, `duplicates`)
VALUES ('dba.stackexchange.com/', 0)
ON DUPLICATE KEY UPDATE `duplicates` = `duplicates`+1;
INSERT INTO UserNames (`username`, `duplicates`)
VALUES ('stackoverflow.com', 0)
ON DUPLICATE KEY UPDATE `duplicates` = `duplicates`+1;
Berikut adalah rincian dari apa yang terjadi:username bidang ditandai sebagai unik sehingga setiap upaya untuk memasukkan catatan dengan nama pengguna yang ada akan gagal di tingkat basis data. Kemudian INSERT pernyataan memiliki tambahan
ON DUPLICATE KEY UPDATE `duplicates` = `duplicates`+1
Ini memberi tahu MySQL bahwa alih-alih gagal INSERT, ambil saja duplicates kolom dan bertambah satu. Saat Anda menjalankan tiga perintah INSERT, Anda akan melihat dua catatan, stackoverflow.com memiliki duplicates nilai 1, sedangkan dba.stackexchange.com memiliki duplicates nilai 0.