Oracle
 sql >> Database >  >> RDS >> Oracle

Incremento automatico della chiave primaria nel database Oracle

Come dice Orbman, il modo standard per farlo è con una sequenza. Quello che fa anche la maggior parte delle persone è accoppiarlo con un trigger di inserimento. Pertanto, quando viene inserita una riga senza un ID, il trigger si attiva per compilare l'ID per te dalla sequenza.

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;

Questo è uno dei pochi casi in cui ha senso utilizzare un trigger in Oracle.