Hier is een benadering met behulp van de link die @johnthexii heeft verstrekt (demo ) (het gebruikt alleen MySQL, dus het is niet specifiek voor 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;
Hier is een overzicht van wat er aan de hand is:De username veld is gemarkeerd als uniek, dus elke poging om een record in te voegen met een bestaande gebruikersnaam zal mislukken op databaseniveau. Dan de INSERT verklaring heeft een extra
ON DUPLICATE KEY UPDATE `duplicates` = `duplicates`+1
Dit vertelt MySQL dat in plaats van de INSERT te laten mislukken, gewoon de duplicates kolom en verhoog met één. Wanneer u de drie INSERT-opdrachten uitvoert, ziet u twee records, stackoverflow.com heeft een duplicates waarde van 1, terwijl dba.stackexchange.com heeft een duplicates waarde van 0.