sql >> Base de Datos >  >> RDS >> Oracle

Uso de valores secuenciales para la clave principal en una consulta INSERT

¿Por qué no creas un disparador para tu secuencia como este:

Secuencia:

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

Activador:

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;

El activador obtendrá automáticamente el siguiente valor/id en cada inserción (como auto_increment en mysql).