Apenas uma pequena folha de dicas.
Mysql tem 3 cenários diferentes para lidar com duplicatas de chaves únicas:
Se você quiser...
- não faça nada - use
INSERT IGNORE
- exclua o existente e crie um novo - use
REPLACE INTO
- atualizar existente - use
ON DUPLICATE UPDATE