Gérer l'auto-increment sous Oracle

Lors de certains passages d'un SGBD à l'autre (de MySQL à Oracle par exemple), un problème apparaît régulièrement : la gestion de l'auto-incrément. Nous utilisons alors le système de trigger (déclencheur en français) combiné à une séquence.

Soit la table :

CREATE TABLE t1 (ID number, nom varchar2(250 char));

Où nous désirons placé un auto incrément sur la colonne ID.
Créons alors d'abord une séquence :
CREATE SEQUENCE s_inc_t1 START WITH 1 INCREMENT BY 1;


Puis le trigger utilisant cette séquence pour l'insertion :
CREATE TRIGGER tr_inc_t1 ON t1 BEFORE INSERT
FOR EACH ROW
DECLARE
BEGIN
select s_inc_t1 into :new.t1.ID from DUAL;
END.
/


Voir également la gestion des contraintes d'intégrité avec clés primaires et étrangères.
L'article CREATE OR REPLACE ... oui mais pour les tables est susceptible de vous intéresser.




Vous n'avez pas trouver réponse à votre question ? Préciser votre recherche :

Catégories