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 Oracle Discussion :

Select for update


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 109
    Par défaut Select for update
    Bonjour,

    je me pose une question concernant le fonctionnement du "SELECT FOR UPDATE"
    Disons que j'effectue un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    FOR monCurseur IN (SELECT mesChamps FROM maTable WHERE mesClauses FOR UPDATE)
    LOOP
       ....
       .....
       UPDATE ligne ;
    END LOOP;
     
     
    COMMIT;
    Quand je fais mon instruction SELECT FOR UPDATE je vais locker plusieurs lignes.
    Est ce que le délockage des lignes s'effectue une à une après chaque UPDATE, ou bien le délockage intervient toutes les lignes en même temps à la fin lors du COMMIT ?

    Merci pour vos réponses

  2. #2
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Le verrou sera retiré au moment du COMMIT.

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 109
    Par défaut
    Et c'est donc bien là mon problème ...
    Disons qu'en fait j'aurais besoin que le verrou s'enlève à l'UPDATE car le code mentionné correspond à celui d'un trigger qui va lister des données et selon l'état de ces données va déclencher ou non un traitement qui ne doit être exécuté qu'une seule fois.

    Mais comme le trigger peut se déclencher plusieurs fois en parallèle, je voulais éviter que le traitement ultérieur ne se lance lui aussi plusieurs fois

    Et comme je suis dans une transaction, je n'ai pas la possibilité à mon niveau de committer ...

    Bref si vous avez une idée je suis preneur

  4. #4
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    Et faire un trigger "AFTER UPDATE" sans clause "FOR EACH ROW" ?
    Comme ca, il ne déclenchera qu'une fois !

Discussions similaires

  1. select for update LOCK 3 10gR2
    Par petitfrere dans le forum Oracle
    Réponses: 1
    Dernier message: 01/12/2006, 18h52
  2. Select For Update Nowait
    Par e1lauren dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 28/09/2006, 22h04
  3. [FORMS PL/SQL] Select for Update
    Par taska dans le forum Forms
    Réponses: 3
    Dernier message: 30/08/2006, 10h33
  4. [MySql5]select ... for update
    Par melou dans le forum Requêtes
    Réponses: 1
    Dernier message: 20/04/2006, 11h11
  5. [Verrou] SELECT FOR UPDATE
    Par e1lauren dans le forum PostgreSQL
    Réponses: 10
    Dernier message: 13/10/2005, 17h06

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