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

Oracle Discussion :

Trigger et update


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 17
    Par défaut Trigger et update
    Bonjour,

    Je souhaite créer un trigger qui surveille les update sur une table et qui en cas d'update met à jour une colonne de cette même table. Voci mon trigger

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    CREATE OR REPLACE TRIGGER "ASVP2".TREQUEST_UPDATE BEFORE UPDATE ON TREQUEST FOR EACH ROW
    DECLARE
     boVal int;
     idxVal int;
    BEGIN
      boVal := :old.bo;
      idxVal := :old.bo;
    IF boVal = 0 THEN
      UPDATE TREQUEST SET BO = 2 WHERE IDXREQUEST = idxVal;
    END IF;
    END;
    /
    SHOW ERRORS TRIGGER TREQUEST_UPDATE;
    Quand je fais un update sur ma table j'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    The following error has occurred:
     
    ORA-04091: table ASVP2.TREQUEST en mutation, déclencheur/fonction ne peut la voir
    ORA-06512: à "ASVP2.TREQUEST_UPDATE", ligne 8
    ORA-04088: erreur lors d'exécution du déclencheur 'ASVP2.TREQUEST_UPDATE'
     
     
     
     
    Details:
    ORA-04091: table ASVP2.TREQUEST en mutation, déclencheur/fonction ne peut la voir
    ORA-06512: à "ASVP2.TREQUEST_UPDATE", ligne 8
    ORA-04088: erreur lors d'exécution du déclencheur 'ASVP2.TREQUEST_UPDATE'
    Quelqu'un à déjà eu ce cas ?

    Merci pour votre aide

  2. #2
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    On ne peut pas faire d'update dans un trigger sur la table que l'on est en train de modifier :
    http://sgbd.developpez.com/oracle/ora-04091/

    Une recherche sur le forum t'aurait donné la réponse

  3. #3
    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
    C'est le problème de la table en mutation.
    http://sgbd.developpez.com/oracle/ora-04091/

Discussions similaires

  1. [trigger] insert update et delete
    Par kooljy dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 13/07/2006, 08h56
  2. Trigger if update
    Par b_lob dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 20/04/2006, 14h49
  3. [8i][forms 6i] trigger PRE-UPDATE
    Par Magnus dans le forum Oracle
    Réponses: 6
    Dernier message: 21/02/2006, 11h57
  4. TRIGGER After Update
    Par Nounoursonne dans le forum Oracle
    Réponses: 8
    Dernier message: 20/07/2005, 13h33
  5. Réponses: 2
    Dernier message: 29/09/2004, 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