Oracle & autoincrement

Oracle & autoincrement - Programmation

Marsh Posté le 19-03-2002 à 16:21:16    

Comment on fait sous Oracle pour faire un insert dans un champ autoincrementable ???

Reply

Marsh Posté le 19-03-2002 à 16:21:16   

Reply

Marsh Posté le 20-03-2002 à 11:27:31    

seb666 a écrit a écrit :

Comment on fait sous Oracle pour faire un insert dans un champ autoincrementable ???  




 
Oracle ne possède pas de type de champ autoincrementable.
En revanche tu peux mettre en place un trigger sur ta colonne, qui se déclenche lors d'un insert d'une nouvelle ligne, et qui va chercher la NextValue d'une séquence (et ça marche, je l'avais mis en place dans un projet)

 

[jfdsdjhfuetppo]--Message édité par irulan--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 20-03-2002 à 11:32:16    

CREATE SEQUENCE NomSequence;
 
CREATE TRIGGER NomTrigger IS
BEGIN
  NomTable.NomDuChamps := NomSession.NextVal;
END;
 
Je suis pas sur de la syntaxe, mais ça doit être ça en gros...

Reply

Marsh Posté le 20-03-2002 à 12:13:21    

Caractéristique du trigger
 
Fire Trigger : Before Insert
Trigger For Each Row coché
Trigger Body :
declare numrows INTEGER;
begin
select SEQ_NUM.NEXTVAL into  numrows  from dual;
:new.col_id:= numrows;
end;

 
 
SEQ_NUM est le nom de la séquence Oracle, col_id est le nom de la colonne ID, et numrows ne sert que de variable de stockage temporaire.

Reply

Sujets relatifs:

Leave a Replay

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