Zoals Orbman zegt, is de standaardmanier om dit te doen met een reeks. Wat de meeste mensen ook doen, is dit koppelen aan een invoegtrigger. Dus wanneer een rij wordt ingevoegd zonder een ID, wordt de trigger geactiveerd om de ID voor u uit de reeks in te vullen.
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;
Dit is een van de weinige gevallen waarin het zinvol is om een trigger in Oracle te gebruiken.