Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/07/2007, 14h16   #1
Membre du Club
 
Avatar de Nillak
 
Inscription : octobre 2006
Messages : 138
Détails du profil
Informations personnelles :
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : octobre 2006
Messages : 138
Points : 45
Points : 45
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 :
1
2
START TRANSACTION;
INSERT INTO `ma_table` (`champ2` , `champ3`) VALUES ('v1','v2');
Code de User2 :
1
2
3
4
START TRANSACTION;
INSERT INTO `ma_table` (`champ2` , `champ3`) VALUES ('v1','v2');
SELECT LAST_INSERT_ID();
COMMIT;
Code de User1 :
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 !
__________________
C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison ! (Pierre Desproges)
Nillak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2007, 15h42   #2
Membre expérimenté
 
Inscription : septembre 2006
Messages : 685
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 685
Points : 564
Points : 564
Cette fonction est propre à chaque connexion.
http://dev.mysql.com/doc/refman/5.0/...html#id3066015
Xunil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2007, 16h28   #3
Membre du Club
 
Avatar de Nillak
 
Inscription : octobre 2006
Messages : 138
Détails du profil
Informations personnelles :
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : octobre 2006
Messages : 138
Points : 45
Points : 45
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.
__________________
C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison ! (Pierre Desproges)
Nillak est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h43.


 
 
 
 
Partenaires

Hébergement Web