Sì, usa INSERT ... ON DUPLICATE KEY UPDATE id=id
(non attiverà l'aggiornamento della riga anche se id
è assegnato a se stesso).
Se non ti interessano gli errori (errori di conversione, errori di chiave esterna) e l'esaurimento del campo di incremento automatico (viene incrementato anche se la riga non viene inserita a causa di una chiave duplicata), usa INSERT IGNORE
così:
INSERT IGNORE INTO <table_name> (...) VALUES (...)