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 14/10/2011, 15h34   #1
Invité de passage
 
Thierry
Inscription : octobre 2011
Messages : 5
Détails du profil
Informations personnelles :
Nom : Thierry
Localisation : France, Seine Saint Denis (Île de France)

Informations forums :
Inscription : octobre 2011
Messages : 5
Points : 0
Points : 0
Par défaut Affectation de variable

La commande :
Code :
1
2
 
SHOW STATUS LIKE 'Com_commit';
Retourne le nombre de "commit" qui ont été effectués sur la session courante.

Est-il possible de récupérer la valeur de ce statut dans une variable utilisateur ?

Mon problème est d'arriver à identifier les actions effectuées au cours d'un transaction. Le couple CONNECTION_ID() + Com_commit me donnerais un identifiant unique.
tdecker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2011, 10h03   #2
Membre Expert
 
Avatar de Yanika_bzh
 
Homme Yannick
Ingénieur Etudes & Developpements
Inscription : février 2006
Messages : 1 125
Détails du profil
Informations personnelles :
Nom : Homme Yannick
Localisation : France, Deux Sèvres (Poitou Charente)

Informations professionnelles :
Activité : Ingénieur Etudes & Developpements
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2006
Messages : 1 125
Points : 1 670
Points : 1 670
si CONNECTION_ID() + Com_commit vous donne un identifiant unique, a quoi vous sert le Com_commit ?? Si <Var> + Constante = Id Unique => <Var> = Id Unique CQFD !

Bon courage
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac)
Yanika_bzh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2011, 10h19   #3
Invité de passage
 
Thierry
Inscription : octobre 2011
Messages : 5
Détails du profil
Informations personnelles :
Nom : Thierry
Localisation : France, Seine Saint Denis (Île de France)

Informations forums :
Inscription : octobre 2011
Messages : 5
Points : 0
Points : 0
J'ai du mal m'exprimer...

'Com_commit' n'est pas une constante. C'est un statut système lié à la session. A chaque commit d'une transaction dans la session courante, ce statut est incrémenté de 1.

MySql ne fournissant d'ID de transaction, je cherche à contourner cette limitation. Pour tracer toutes les opérations effectuées au sein d'une même transaction, la concaténation du session_id et du com_commit permettrait de regrouper clairement toutes les actions effectuées au sein d'une seule transaction.

Exemple :

- Début de session : 'session_id' est à 'x', 'Com_commit' égal 0.
- Commit d'une transaction : 'Com_commit' passe à 1.
- Commit d'une seconde transaction : 'com_commit' passe à 2.
etc...

Je cherche donc à récupérer ce statut 'com_commit' dans une variable afin de pouvoir l'enregistrer dans un journal. La consultation de ce journal donnera en quelque sorte un pseudo 'transaction_id' en concaténant 'session_id' et 'com_commit'.
tdecker est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2011, 10h29   #4
Membre Expert
 
Avatar de Yanika_bzh
 
Homme Yannick
Ingénieur Etudes & Developpements
Inscription : février 2006
Messages : 1 125
Détails du profil
Informations personnelles :
Nom : Homme Yannick
Localisation : France, Deux Sèvres (Poitou Charente)

Informations professionnelles :
Activité : Ingénieur Etudes & Developpements
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2006
Messages : 1 125
Points : 1 670
Points : 1 670
En théorie ce n'est pas suffisant de concaténer ces 2 valeurs telles quelles.
Ex :

Connection ID NbCommit Clé Générée

13112341 1 131123411
1311234 11 131123411

D'ou 2 clés identiques pour 2 connections différentes => Cela ne correspond pas a vos spec.

Il faudrait alors y inserer un delimiteur pour générer votre clé fonctionnelle.
Vous pouvez aussi avoir ces 2 colonnes dans votre table et un identifiant technique auto incrémenté.

Mais je ne connais ni votre modele, ni vos spec pour pouvoir avoir un avis tranché sur la question.

Bon courage
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac)
Yanika_bzh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2011, 10h35   #5
Invité de passage
 
Thierry
Inscription : octobre 2011
Messages : 5
Détails du profil
Informations personnelles :
Nom : Thierry
Localisation : France, Seine Saint Denis (Île de France)

Informations forums :
Inscription : octobre 2011
Messages : 5
Points : 0
Points : 0
Avoir deux clés identiques sur deux connexions différentes ne me pose pas de problème.

Je cherche seulement à avoir deux (ou plus) clés différentes dans une seule connexion. La clé cherchée doit être différente pour chacune des 'n' transactions commit(ées) durant une seule et unique connexion.
tdecker est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h24.


 
 
 
 
Partenaires

Hébergement Web