Insérer ou mettre à jour MySql en fonction d'une condition unique
L'insertion de données dans une table MySQL implique souvent de vérifier si les données existent déjà avant d'effectuer une mise à jour . Cependant, lorsqu'il s'agit de colonnes de clé non primaire uniques, l'instruction UPDATE traditionnelle est insuffisante.
Dans ce cas, l'utilisateur recherche une méthode efficace pour insérer des données dans une table AggregatedData si la colonne datenum n'existe pas. , ou mettez à jour la ligne existante si c'est le cas.
Solution : INSÉRER... SUR LA CLÉ EN DOUBLE UPDATE
Comme suggéré par Jai, la solution la plus appropriée est d'utiliser 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)
Cette instruction effectue une insertion si le datenum n'est pas trouvé. Si elle existe, elle met à jour la colonne Timestamp avec la valeur fournie dans la fonction VALUES().
Explication
La fonction VALUES() garantit que les valeurs utilisées pour la mise à jour sont les mêmes que celles spécifiées dans l'instruction INSERT. Cela évite les mises à jour accidentelles des valeurs de colonne.
Avantages de INSERT ... ON DUPLICATE KEY UPDATE
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!