Maison >base de données >tutoriel mysql >Comment puis-je effectuer efficacement des upserts dans MySQL ?
Opération MySQL Upsert : mettre à jour s'il existe, insérer s'il n'existe pas
Question :
Dans MySQL, existe-t-il un moyen efficace d'effectuer une opération "Upsert", c'est-à-dire insérer une nouvelle ligne si elle n'existe pas, et mettre à jour la ligne existante si elle existe ?
Réponse :
Oui, MySQL fournit la syntaxe INSERT ... ON DUPLICATE KEY UPDATE
pour réaliser cette fonctionnalité. Voici un exemple :
Exemple :
<code class="language-sql">INSERT INTO `usage` (`thing_id`, `times_used`, `first_time_used`) VALUES (4815162342, 1, NOW()) ON DUPLICATE KEY UPDATE `times_used` = `times_used` + 1</code>
Instructions :
INSERT INTO
tente d'insérer une nouvelle ligne avec la valeur spécifiée. ON DUPLICATE KEY UPDATE
définit ce qui doit se passer si un conflit de clé unique se produit (c'est-à-dire si une ligne avec le même thing_id
existe déjà). times_used
. Avantages :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!