IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

[MySQL 5] Gestion des accès concurrents sur un moteur InnoDB


Sujet :

SQL Procédural MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 80
    Points : 59
    Points
    59
    Par défaut [MySQL 5] Gestion des accès concurrents sur un moteur InnoDB
    Bonjour,
    Je suis confronté à un problème pour moi nouveau en terme de BDD :

    Voici mon scénario :

    J'ai une table articles avec un listing d'articles ( nom, description, quantité en stock ) et une table achats qui stocke les achats des articles faits par les internautes.

    Voici ma problématique :

    Gérer les accès concurrents sur les achats des articles.

    Si j'ai pour l'article "éponge" une quantité de 2 en base et que j'ai 3 personnes en même temps qui clique sur le bouton "Acheter" avec une quantité de 1, cela pose problème.

    Je fais pourtant ( en PHP ) une vérification via une requête si la quantité est bien disponible, avant d’insérer dans une seconde requête ( INSERT ) dans la table achats.
    Mais entre l’exécution de la première requête, du script PHP et de la deuxième requête, j'ai un laps de temps qui permet des accès concurrents.

    Comment résoudre au mieux ma problématique ?

    Merci de votre aide

  2. #2
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 902
    Points : 6 026
    Points
    6 026
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  3. #3
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    salut,

    si tu es avec un moteur innodb fais ce qu'il te propose...

    si tu es en moteur myisam, soit:
    • tu passes la table en innodb pour appliquer ce qu'il propose...
    • si tu peux pas... tu fais une procédure stockée qui pose un verrou de table le temps de ta transaction
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 80
    Points : 59
    Points
    59
    Par défaut
    Je vais tester avec SELECT... FOR UPDATE.
    Merci

Discussions similaires

  1. Gestion des accès concurrents - comment faire ?
    Par Janitrix dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 22/05/2008, 14h22
  2. Réponses: 9
    Dernier message: 30/04/2008, 09h55
  3. Gestion des accès concurrents sous DELPHI/PARADOX.
    Par tarbala dans le forum Bases de données
    Réponses: 8
    Dernier message: 04/02/2008, 19h13
  4. Gestion des accès concurrent
    Par nicoaix dans le forum Access
    Réponses: 3
    Dernier message: 06/07/2006, 15h54
  5. Gestion des accès concurrents à une table
    Par kodo dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 20/06/2006, 14h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo