Dans MySQL, j'essaie de trouver un moyen efficace d'effectuer une mise à jour si une ligne existe déjà dans une table, ou un INSERT si la ligne doesn ' t existe.Exécution d'un UPDATE ou d'un INSERT selon qu'une ligne existe ou non dans MySQL
J'ai trouvé deux façons possibles jusqu'à présent:
- L'évidence celui-ci: ouvrir une transaction, SELECT pour trouver si la ligne existe, INSERT si elle n'existe pas ou UPDATE si elle existe, commettras transaction
- premier INSERT IGNORE dans la table (si aucune erreur est déclenchée si la rangée existe déjà), puis mettre à jour
la seconde méthode permet d'éviter l'opération.
Laquelle, à votre avis, est la plus efficace et existe-t-il de meilleurs moyens (par exemple, l'utilisation d'un déclencheur)?
Une fois, j'ai entendu cela appelé Upserting. Je l'ai trouvé pour être un terme concis gentil pour cela. Et pour une raison quelconque, ça me fait rire. –
@MikeTwo me fait rire aussi, probablement parce que ça sonne comme upskirt :) – nawfal