|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() kim archer Inscription : mai 2007 Messages : 332 ![]() |
Bonjour,
Je suis entrain de développer une procédure sous MySQL. J'ai une liste d'élément que j'ai mis dans un CURSOR, je dois parcourir cette liste et vérifier certaines conditions puis faire un traitement. Si au cours de mon parcours il y a une ligne qui ne vérifie pas ces conditions, je dois retourner en arrière et annuler les traitement précédents(faire des traitement inverse). Malheureusement je n'est trouvé que FETCH. Donc je vous écris ce message pour savoir s'il y a d'autre méthodes ou stratégies à utiliser. Merci d'avance.
__________________
rien pour l'instant
|
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() Inscription : février 2005 Messages : 349 ![]() |
bonjour.
Si les tables utilise le moteur innodb et que le système n'est pas configuré avec l'autocommit, je dirais que vous pouvez utiliser les fonctionnalités transactionnelles (rollback) du moteur dans une procédure. A tester
__________________
La connaissance s'accroit lorsqu'on la partage. |
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() kim archer Inscription : mai 2007 Messages : 332 ![]() |
Merci pour la réponse, c'est une bonne alternative. Mais quand je lai exécuté, j'ai remarqué que commit consomme beaucoup de temps alors que je veux atteindre une vitesse d'exécution un peu élevé.
Y a-t-il autre chose à faire pour remédier à ce problème?
__________________
rien pour l'instant
|
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 843 ![]() |
salut,
non tu ne peux lire les enregistrements que dans un sens... tu peux contourner en créant une table temporaire (en mémoire) dans laquelle tu génères les modifs ou la sauvegarde et tu t'en sers donc au cas où tu as besoin de faire l'équivalent du rollback |
|
|
00
|
|
|
#5 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 953 ![]() |
Encore une des nombreuses fonctionnalité "poudre aux yeux" de MySQL !
En gros "oui, oui, MySQL implémente les curseurs..." mais ce que l'on peut faire avec est plus que limité : -- aucun curseur scrollable (ils sont systématiquement matérialisés, impossible d'avancer autrement qu'en avant et d'une ligne) -- pas de possibilité de faire du READ ONLY pour éviter de verrouiller les tables -- impossibilité d'imbriquer la lecture des curseurs -- pas de possibilité de mettre à jour la ligne courante du curseur ... A lire : http://blog.developpez.com/sqlpro/p9...udre-aux-yeux/ A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
Copyright © 2000-2012 - www.developpez.com