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

Autoincremento de chave primária no banco de dados Oracle


Como diz Orbman, a maneira padrão de fazer isso é com uma sequência. O que a maioria das pessoas também faz é acoplar isso com um gatilho de inserção. Assim, quando uma linha é inserida sem um ID, o gatilho é acionado para preencher o ID para você a partir da sequência.
CREATE SEQUENCE SEQ_ROLLINGSTOCK_ID START WITH 1 INCREMENT BY 1 NOCYCLE;

CREATE OR REPLACE TRIGGER BI_ROLLINGSTOCK
BEFORE INSERT ON ROLLINGSTOCK
REFERENCING OLD AS OLD NEW AS NEW
FOR EACH ROW
 WHEN (NEW.ID IS NULL)
BEGIN
  select SEQ_ROLLINGSTOCK_ID.NEXTVAL
   INTO :NEW.ID from dual;
END;

Este é um dos poucos casos em que faz sentido usar um gatilho no Oracle.