MySQL INSERT ON DUPLICATE KEY UPDATE
Dans ce tutoriel nous allons découvrir comment utiliser l’instruction MySQL INSERT ON DUPLICATE KEY UPDATE pour mettre à jour les données si une copie de l’index UNIQUE ou une erreur PRIMARY KEY se produit lorsque vous insérez une ligne dans une table.
Exemple de l’instruction INSERT ON DUPLICATE KEY UPDATE
Prenons un exemple d’utilisation de l’instruction INSERT ON DUPLICATE KEY UPDATE pour voir comment elle fonctionne. Pour cela nous allons utiliser la table « Contact ».
CREATE TABLE Contact (id INT PRIMARY KEY, email VARCHAR(30)); INSERT INTO contact VALUES (1,'[email protected]') (2,'[email protected]'), (3,'[email protected]');
Si nous exécutons une requête INSERT standard avec une valeur de clé primaire égale à 1 échouera, en raison du clé existante:
INSERT INTO Contact VALUES (1,'[email protected]');
Pourtant, nous pouvons utiliser l’instruction INSERT ON DUPLICATE KEY UPDATE comme suivant:
INSERT INTO Contact VALUES (1,'[email protected]') ON DUPLICATE KEY UPDATE email='[email protected]';
Notez qu’il y a deux lignes signalées comme affectées, puisque la ligne avec l’ID 1 existe déjà dans la table des contactes, l’instruction met à jour l’email « [email protected] » en « [email protected] ».