Maison  >  Article  >  base de données  >  Implémentation MYSQL d'exemples de code pour éviter la duplication de l'ajout de paniers

Implémentation MYSQL d'exemples de code pour éviter la duplication de l'ajout de paniers

黄舟
黄舟original
2017-09-21 10:53:361738parcourir

La chose la plus importante à prendre en compte lors de l'insertion de données dans MySQL est d'éviter l'ajout répété de données. L'article suivant vous présente principalement les informations pertinentes sur la façon dont MYSQL empêche l'ajout répété lors de l'ajout d'un panier. Le code est présenté de manière très détaillée. Les amis qui en ont besoin peuvent s'y référer.

Avant-propos

Récemment, pour des raisons professionnelles, je travaillais sur le paiement des commandes de panier APP. Un bug a été soulevé par le testeur, Lorsque le clic pour ajouter au panier était relativement rapide, le même produit apparaissait deux fois dans le panier

Car lors de l'ajout au panier, il y a deux étapes. La première étape consiste d'abord à déterminer si. à ajouter au panier. Vérifiez si le produit dans le panier est déjà dans le panier. Si c'est le cas, ajoutez-en un à la quantité d'origine. S'il n'y est pas, rebranchez-le

Parce que le. deux étapes ne sont pas des opérations atomiques, semble-t-il. Il n'y a pas grand chose à dire sur les problèmes de sécurité multithread. Venez suivre l'éditeur pour voir le processus de solution détaillé.

L'insertion MySQL a une opération plus avancée

Exemple de code :


INSERT INTO t_xs_shopping_cart (
 user_id,
 shop_id,
 commodity_id,
 quantity
)
VALUES 
 (71, 67, 140201057403511024, 1) ON DUPLICATE KEY UPDATE quantity = quantity + 1

Lorsque la contrainte de clé unique prendra effet, l'instruction de mise à jour sera exécutée et la quantité sera augmentée de 1

Résumé

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