Seperti yang dikatakan Orbman, cara standar untuk melakukannya adalah dengan urutan. Apa yang kebanyakan orang juga lakukan adalah memasangkan ini dengan pemicu sisipan. Jadi, ketika sebuah baris disisipkan tanpa ID, pemicu akan diaktifkan untuk mengisi ID Anda dari urutan tersebut.
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;
Ini adalah salah satu dari sedikit kasus di mana masuk akal untuk menggunakan pemicu di Oracle.