..
Et «bien connu que d'une gestion correcte de requête est un préalable à la mise en œuvre stable et efficace.
Dans cet article nous allons présenter une syntaxe peu connu mais très puissant, je parle de la clause ON DUPLICATE KEY UPDATE.
Cette clause est utilisée pendant une instruction INSERT et son but est de vérifier, avant l'insertion, il ya une duplication d'une clé primaire (clé primaire) ou une clé unique (clé unique), et si cela arrive, le moteur de un'UPDATE MySQL au lieu d'insertion.
L'avantage de cette clause est clair: vous écrivez une requête unique au lieu de deux avec des avantages en termes de performances et de nettoyage de code.
Prenons un exemple. Supposons que nous voulons faire un script simple qui effectue l'enregistrement des visiteurs de notre site. En dessous de la structure de la table de notre base de données:
Merci à l'INSERT syntaxe ... ON UPDATE DUPLICATE KEY ... nous pouvons obtenir le même résultat avec une seule requête:
INSERT INTO ip_visitatori ('123 .123.123.123 ', 1, MAINTENANT ())
SUR DPLICATE CLÉS
UPDATE numero_visite numero_visite = + 1, ultima_visita = MAINTENANT ();
Ainsi, si l'IP est l'inclusion est faite, sinon vous exécutez une simple mise à jour du dossier touché.
En utilisant cette syntaxe permet d'obtenir un avantage en termes de performance égale à 30%.
Avec un peu de l'imagination et l'ingéniosité de la clause en question, il peut être très utile dans diverses circonstances.
Par exemple, nous pouvons l'utiliser en combinaison avec une condition.
Voici un exemple: Supposons que vous ayez une table d'un site d'enchères en ligne hypothétiques structuré comme suit:
Offres INSERT INTO VALUES (1, 120) SUR DPLICATE CLÉS UPDATE migliore_offerta = SI (VALUES (migliore_offerta) <120, 120, les valeurs (migliore_offerta))Grâce à une simple requête, nous avons résolu d'un seul coup ... Sinon, nous aurions dû utiliser plusieurs requêtes avec un gaspillage subséquent des ressources (et un plus grand risque d'erreurs).
| |
MS Access (Avancé)
Apprenez à créer et gérer des bases de données rapidement et facilement. A partir de 29 €. |
| |
MySQL (Cours)
Gestion des bases de données open-source. A partir de 39 €. |
| |
SQL et bases de données (cours)
Créer et gérer des bases de données relationnelles. A partir de 39 €. |