Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Usando valores sequenciais para a chave primária em uma consulta INSERT


Por que você não cria um gatilho para sua sequência assim:

Seqüência:
CREATE SEQUENCE LD_USER_ROLE_SEQ
    INCREMENT BY 1 START WITH 1 NOMAXVALUE NOMINVALUE NOCYCLE NOCACHE NOORDER

Acionar:
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;

O gatilho obterá automaticamente o próximo valor/id em cada inserção (como auto_increment no mysql).