[Oracle]Auto increment

Auto increment [Oracle] - SQL/NoSQL - Programmation

Marsh Posté le 07-04-2004 à 10:40:29    

Bonjour,
 
comment créer un autoincrément sur une colonne lorsqu'on modifie la ligne? (Ce n'est pas une clé primaire).
 
par exemple :
 
Nom/prenom/NombredeMAJ
TOTO/LULU/0 >a l'insertion
puis ensuite à chaque MAJ je voudrais que NombreMaj incrémente de 1. Mais que la ligne update pas l'ensemble de la table.
 
j'ai essayez un trigger mais on dirait que ça update un peu trop de ligne  
 
CREATE OR REPLACE TRIGGER CARTE.NB_MAJ
BEFORE UPDATE
ON TABLE
FOR EACH ROW
BEGIN
 select :old.NOMBRE+1 INTO :new.NOMBRE from dual;
END;
/

Reply

Marsh Posté le 07-04-2004 à 10:40:29   

Reply

Marsh Posté le 14-04-2004 à 09:22:32    

Vous devez utiliser une séquence.
 
Créer la séquence (suite des valeurs de l'incrément) :
 

Code :
  1. Create Sequence S_ECIIssuers;
  2. select S_ECIIssuers.nextval from dual;


 
Ensuite vous utilisez cette séquence dans vos triggers. Par exemple pour le trigger avant l'insertion vous faites :
 

Code :
  1. CREATE OR REPLACE TRIGGER T_ECIIssuers
  2.     BEFORE INSERT ON ECIIssuers
  3.     FOR EACH ROW
  4.      DECLARE NbRows INTEGER;
  5.     BEGIN
  6.       SELECT S_ECIIssuers.NEXTVAL INTO :NEW.ECIIssuers_Id FROM DUAL;
  7.     END;
  8.    
  9. /


Message édité par ludolitaliano le 14-04-2004 à 09:25:07
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed