Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/01/2008, 14h52   #1
Nouveau Membre du Club
 
Inscription : mai 2005
Messages : 182
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 182
Points : 39
Points : 39
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 :
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.
yupa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2008, 18h09   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
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.
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2008, 19h03   #3
Nouveau Membre du Club
 
Inscription : mai 2005
Messages : 182
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 182
Points : 39
Points : 39
il semlerait qu'en supprimant puis recréant la séquence ca marche.
Merci de ta réponse
yupa est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h20.


 
 
 
 
Partenaires

Hébergement Web