Oracle
 sql >> Base de données >  >> RDS >> Oracle

Utilisation de valeurs séquentielles pour la clé primaire dans une requête INSERT

Pourquoi ne créez-vous pas simplement un déclencheur pour votre séquence comme ceci :

Séquence :

CREATE SEQUENCE LD_USER_ROLE_SEQ
    INCREMENT BY 1 START WITH 1 NOMAXVALUE NOMINVALUE NOCYCLE NOCACHE NOORDER

Déclencheur :

CREATE TRIGGER LD_USER_ROLE_INSERT BEFORE INSERT ON LD_USER_ROLE
    REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW
BEGIN
    SELECT LD_USER_ROLE_SEQ.NEXTVAL INTO :NEW.USER_ROLE_ID FROM DUAL;
END;

Le déclencheur obtiendra automatiquement la prochaine valeur/id à chaque insertion (comme auto_increment dans mysql).