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 27/01/2012, 23h30   #1
Membre éprouvé
 
Avatar de GaetanLeu
 
Homme Gaëtan Léü
Développeur informatique
Inscription : juillet 2007
Messages : 421
Détails du profil
Informations personnelles :
Nom : Homme Gaëtan Léü
Âge : 25
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Finance

Informations forums :
Inscription : juillet 2007
Messages : 421
Points : 120
Points : 120
Par défaut Transaction dans une procédure ?

Bonjour j'ai une question sur les transaction,
j'ai deux procédures, on va dire a et b, cette dernière appellant la a de cette facon :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
PROCEDURE a
BEGIN
    INSERT INTO TABLE a
END
 
PROCEDURE b
BEGIN
START TRANSACTION;
    CALL a ...
    INSERT INTO table_b ...
END TRANSACTION;
END
Je pensais que la transaction dans b m'assurait que si je n'arrive pas à faire mon INSERT INTO table_b dans la procédure b, alors l'INSERT INTO a fait dans la procédure a serait aussi "ROLLBACKÉ", or je m'aperçois que ça n'est pas le cas ! Est-ce moi qui ait mal compris quelque chose ?
GaetanLeu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 11h06   #2
Membre émérite
 
Avatar de mactwist69
 
Homme Adrien
Développeur .NET
Inscription : janvier 2007
Messages : 924
Détails du profil
Informations personnelles :
Nom : Homme Adrien
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Industrie

Informations forums :
Inscription : janvier 2007
Messages : 924
Points : 978
Points : 978
La requête est itérative...

Donc la première requête dans b va s’exécuter, si la deuxième lève une exception, il sort de la procédure ou tente de continuer. Mais il n'y a pas de rollback automatique dans les procédure.

Par contre tu peux la créer toi même est essayant de levé les exception sur la deuxième requête, et ainsi la rollbacker toi même.
__________________
L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)
mactwist69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 11h12   #3
Membre éprouvé
 
Avatar de GaetanLeu
 
Homme Gaëtan Léü
Développeur informatique
Inscription : juillet 2007
Messages : 421
Détails du profil
Informations personnelles :
Nom : Homme Gaëtan Léü
Âge : 25
Localisation : France, Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Finance

Informations forums :
Inscription : juillet 2007
Messages : 421
Points : 120
Points : 120
Oui j'avais tout simplement de déclarer des EXIT HANDLER, avec ça marche comme je veux, merci
GaetanLeu 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 17h09.


 
 
 
 
Partenaires

Hébergement Web