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 :

parcourir CURSOR en inverse


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de archer
    Ingénieur développement logiciels
    Inscrit en
    Mai 2007
    Messages
    338
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 338
    Par défaut parcourir CURSOR en inverse
    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.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 390
    Par défaut
    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

  3. #3
    Membre éclairé Avatar de archer
    Ingénieur développement logiciels
    Inscrit en
    Mai 2007
    Messages
    338
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 338
    Par défaut
    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?

  4. #4
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    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

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    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
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Parcourir QMap en sens inverse
    Par etranger dans le forum Débuter
    Réponses: 2
    Dernier message: 04/12/2009, 10h44
  2. Comment parcourir une map en sens inverse
    Par alen dans le forum SL & STL
    Réponses: 8
    Dernier message: 03/08/2008, 20h24
  3. [Tableaux] Parcourir un tableau en sens inverse
    Par phoque.r dans le forum Langage
    Réponses: 7
    Dernier message: 13/04/2007, 10h08
  4. parcourir un fichier dans l'ordre inverse
    Par franc82 dans le forum C++
    Réponses: 11
    Dernier message: 09/02/2007, 13h56
  5. [VB6] [MDI] Parcourir toutes les MDIForms chargées
    Par d.carail dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 04/10/2002, 09h07

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