Oracle & autoincrement - Programmation
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]
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... 
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. 
Marsh Posté le 19-03-2002 à 16:21:16
Comment on fait sous Oracle pour faire un insert dans un champ autoincrementable ???