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 ???