Instruction INSERT ... ON DUPLICATE KEY UPDATE de MySQL : insertion et mise à jour conditionnelles simplifiées
Lorsque vous utilisez une base de données relationnelle telle que MySQL, vous devrez peut-être effectuer des opérations d'insertion ou de mise à jour de manière conditionnelle. Cela se produit lorsque vous devez créer un nouvel enregistrement s'il n'existe pas ou mettre à jour un enregistrement s'il existe déjà. L'approche traditionnelle consiste à utiliser une combinaison de requêtes SELECT et INSERT ou UPDATE, ce qui peut devenir complexe et inefficace.
Heureusement, MySQL propose une solution plus élégante : l'instruction INSERT ... ON DUPLICATE KEY UPDATE
. Cette commande polyvalente permet d'insérer une ligne si l'enregistrement n'existe pas, ou de mettre à jour une ligne si une ligne avec la même clé existe déjà dans la table.
Grammaire :
<code class="language-sql">INSERT INTO `table_name` (`column_list`) VALUES (`value_list`) ON DUPLICATE KEY UPDATE `column_name` = `new_value`</code>
Comment ça marche :
ON DUPLICATE KEY UPDATE
spécifie quelles colonnes doivent être mises à jour avec quelles valeurs fournies. Exemple :
Considérons l'exemple suivant :
<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>
thing_id
a une valeur de clé primaire de 4815162342 qui n'existe pas, insérez une nouvelle ligne dans la table usage
en utilisant la valeur spécifiée. thing_id
a déjà une valeur de clé primaire de 4815162342, mettez à jour la colonne times_used
en ajoutant 1 à sa valeur actuelle. Avantages :
INSERT ... ON DUPLICATE KEY UPDATE
fournit un moyen concis et clair d'effectuer des opérations d'insertion et de mise à jour à l'aide d'une seule requête. 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!