Maison >base de données >tutoriel mysql >Comment gérer les contraintes de clé uniques lors de l'insertion ou de la mise à jour dans MySQL ?
Insérer ou mettre à jour en utilisant des contraintes de clé uniques dans MySQL
L'insertion ou la mise à jour de lignes dans une table MySQL peut être délicate lorsque vous devez gérer des contraintes de clés en double. Pour résoudre ce problème, MySQL fournit l'instruction polyvalente "INSERT ... ON DUPLICATE KEY UPDATE".
Comme indiqué dans la question, vous souhaitez insérer une ligne dans une table avec une clé unique. Toutefois, si une ligne avec la même clé unique existe déjà, vous souhaitez mettre à jour sa valeur.
Traditionnellement, l'insertion d'une ligne violerait une contrainte de clé unique, entraînant un message d'erreur. "INSERT IGNORE" supprime les erreurs mais n'effectue pas d'opération de mise à jour.
Solution : INSÉRER... SUR LA MISE À JOUR DE LA CLÉ EN DOUBLE
La solution réside dans l'utilisation de la syntaxe "INSERT ... ON DUPLICATE KEY UPDATE". Décomposons cette requête à l'aide de l'exemple fourni :
<code class="language-sql">INSERT INTO table_name (ID, NAME, AGE) VALUES(1, "A", 19) ON DUPLICATE KEY UPDATE NAME="A", AGE=19</code>
Instructions :
Si la ligne avec ID=1 n'existe pas dans le tableau, une nouvelle ligne sera insérée en utilisant la valeur fournie. Cependant, si une ligne avec ID=1 existe déjà, seules les colonnes « NAME » et « AGE » seront mises à jour avec les valeurs spécifiées et « ID » restera inchangé.
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!