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 :

accès concurrent et last_insert_id()


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Nillak
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 138
    Par défaut accès concurrent et last_insert_id()
    Bonjour,
    je travaille avec MySQL 5 et le moteur de tables InnoDB.
    Mon problème (qui est plus une interrogation) :

    Une table (ma_table) possède 3 champs (champ1, champ2 et champ3) dont le premier (champ1) est auto incrémenté

    Code de User1 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    START TRANSACTION;
    INSERT INTO `ma_table` (`champ2` , `champ3`) VALUES ('v1','v2');
    Code de User2 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    START TRANSACTION;
    INSERT INTO `ma_table` (`champ2` , `champ3`) VALUES ('v1','v2');
    SELECT LAST_INSERT_ID();
    COMMIT;
    Code de User1 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT LAST_INSERT_ID();
    COMMIT;
    Est-ce que User1 récupérera l'id (champ1) correspondant à son insertion ou à celle de User2. Dans ce dernier cas cela me pauserai un sévère problème auquel je ne sais pour l'instant pas répondre.

    Auriez-vous un avis ou des suggestions ?
    Merci !

  2. #2
    Membre chevronné
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Par défaut
    Cette fonction est propre à chaque connexion.
    http://dev.mysql.com/doc/refman/5.0/...html#id3066015

  3. #3
    Membre confirmé Avatar de Nillak
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 138
    Par défaut
    Merci Xunil,

    Citation Envoyé par MySQL 5.0 Reference Manual :: 12 Fonctions à utiliser dans les clauses SELECT et WHERE :: 12.8 Autres fonctions :: 12.8.3 Fonctions d'informations
    Le dernier ID généré est conservé par le serveur pour chaque connexion. Un autre client ne la modifiera donc pas, même s'ils génèrent une autre valeur AUTO_INCREMENT de leur coté. Ce comportement permet de s'assurer que les actions des autres clients ne perturbe pas les actions du client en cours.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Data] LAST_INSERT_ID() Transaction Spring Accès Concurrent
    Par w3blogfr dans le forum Spring
    Réponses: 0
    Dernier message: 03/11/2010, 12h06
  2. Réponses: 22
    Dernier message: 25/08/2005, 16h03
  3. Lenteur et acces concurrent
    Par JeanMarc_T2k dans le forum Bases de données
    Réponses: 7
    Dernier message: 04/12/2004, 20h57
  4. acces concurrent avec delphi 5 entreprise
    Par Jean_paul dans le forum Bases de données
    Réponses: 2
    Dernier message: 30/11/2004, 20h19
  5. [EJB] Accès concurrents à la base de données
    Par cameleon2002 dans le forum Java EE
    Réponses: 10
    Dernier message: 23/09/2003, 11h31

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