Oui, utilisez INSERT ... ON DUPLICATE KEY UPDATE id=id
(il ne déclenchera pas la mise à jour de la ligne même si id
est attribué à lui-même).
Si vous ne vous souciez pas des erreurs (erreurs de conversion, erreurs de clé étrangère) et de l'épuisement du champ d'auto-incrémentation (il est incrémenté même si la ligne n'est pas insérée en raison d'une clé en double), utilisez alors INSERT IGNORE
comme ceci :
INSERT IGNORE INTO <table_name> (...) VALUES (...)