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 :

Modifier une sequence qui est dans un tigger


Sujet :

Oracle

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 192
    Par défaut Modifier une sequence qui est dans un tigger
    Bonjour.

    Je ne suis pas encore très a l'aise avec les sequences et les trigger.

    J'ai des tables avec chaque une un trigger et une sequence qui me sert de cle primaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    CREATE TABLE maTable (
      id number(11) NOT NULL,
      name varchar2(255) DEFAULT '',
      CONSTRAINT pk_maTable PRIMARY KEY (id)
    );
     
    CREATE SEQUENCE sq_id;
    CREATE OR REPLACE TRIGGER ai_id
    BEFORE INSERT ON maTable
    FOR EACH ROW WHEN (
     new.id IS NULL OR new.id = 0
    )
    BEGIN
     SELECT sq_id.nextval
     INTO :new.id
     FROM dual;
    END;

    Il arrive que je vide ma table et que je rentre d'autres données avec un ID cette fois ( je fais un transport de données d'une base a une autre en conservant les ID).
    il est donc necessaire que je repositionne la valeur de ma sequence a la fin de mes insersions.

    J'ai lu qu'il fallait supprimer la sequene, puis en créer une nouvelle. Mais comme elle est utilisée dans un trigger est ce que ca ne va pas poser de problème ?

    merci pour vos indications.

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    il faudra recompiler le trigger qui risque d'être invalide après la recréation de la séquence. Tu peux aussi changer le pas d'incrément et appeler nexval.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 192
    Par défaut
    il semlerait qu'en supprimant puis recréant la séquence ca marche.
    Merci de ta réponse

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Accéder à une variable qui est dans une string
    Par ploxien dans le forum Langage
    Réponses: 4
    Dernier message: 13/04/2007, 14h48
  2. Réponses: 7
    Dernier message: 28/01/2007, 11h38
  3. appel d'une fonction qui est dans une autre page
    Par guppy33 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 02/08/2006, 12h05
  4. Peut-on executer une fonction qui est dans un iframe ??
    Par miloud dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 19/04/2006, 11h52
  5. voir comment est alimentée une vue qui est dans dba_objects
    Par meufeu dans le forum Administration
    Réponses: 15
    Dernier message: 06/10/2004, 17h27

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