Utilisez REPLACE
- fonctionne exactement comme INSERT, sauf que si une ancienne ligne de la table a la même valeur qu'une nouvelle ligne pour une PRIMARY KEY ou un UNIQUE index, l'ancienne ligne est supprimée avant l'insertion de la nouvelle ligne.
http://dev.mysql.com/doc/refman/5.0 /fr/replace.html
-- For your example query
REPLACE INTO table_name(name, value, id) VALUES
('phill', 'person', 12345)
Modifier :puisque vous ne pouvez pas utiliser REPLACE, une autre option consiste à :définir des index de contrainte pour les données de la table (clé primaire, unicité) et utiliser INSERT IGNORE
INSERT IGNORE INTO table_name
SET name = 'phill',
value = 'person',
id = 12345;