Maison >base de données >tutoriel mysql >Comment insérer ou mettre à jour des lignes MySQL basées sur une clé unique ?

Comment insérer ou mettre à jour des lignes MySQL basées sur une clé unique ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-26 21:47:15319parcourir

How to Insert or Update MySQL Rows Based on a Unique Key?

Insertion ou mise à jour de lignes MySQL basées sur une clé unique

Considérez le scénario dans lequel vous souhaitez ajouter des données à une table mais faites face au défi d'insérer de nouvelles lignes tout en mettant à jour les lignes existantes. ceux basés sur le caractère unique d'une colonne spécifique (datenum).

Pour répondre à cette exigence, vous pouvez d'abord tenter d'utiliser une instruction UPDATE comme illustré dans la question ; cependant, cette approche se limite à modifier uniquement les lignes existantes. Pour les scénarios où la valeur datenum n'existe pas dans la table, aucune action ne sera entreprise.

Pour effectuer à la fois l'insertion et la mise à jour en fonction de la colonne unique datenum, MySQL fournit l'option INSERT ... ON DUPLICATE KEY UPDATE syntaxe. Cette syntaxe vous permet de définir une opération d'insertion qui met automatiquement à jour la ligne si une clé en double est rencontrée.

Voici une version améliorée de l'instruction UPDATE utilisant la syntaxe INSERT ... ON DUPLICATE KEY UPDATE :

INSERT INTO AggregatedData (datenum,Timestamp)
VALUES ("734152.979166667","2010-01-14 23:30:00.000")
ON DUPLICATE KEY UPDATE 
  Timestamp=VALUES(Timestamp)

Dans cette instruction, le datenum de la colonne de clé unique est utilisé dans la clause INSERT, tandis que la valeur mise à jour pour Timestamp est spécifiée dans ON DUPLICATE KEY. Clause MISE À JOUR. Cela garantit que si une ligne avec le même datenum existe déjà, la colonne Timestamp sera mise à jour avec la valeur fournie, tandis que les autres colonnes resteront inchangées.

En employant cette technique, vous réalisez à la fois l'insertion de nouvelles lignes et la mise à jour. des lignes existantes dans votre table MySQL en fonction de la colonne clé unique.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn