Jak mówi Orbman, standardowym sposobem na to jest sekwencja. Większość ludzi również łączy to z wyzwalaczem wstawiania. Tak więc, gdy wiersz jest wstawiany bez identyfikatora, wyzwalacz uruchamia się, aby wypełnić dla ciebie identyfikator z sekwencji.
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;
To jeden z niewielu przypadków, w których użycie wyzwalacza w Oracle ma sens.