Như Orbman nói, cách tiêu chuẩn để làm điều đó là với một trình tự. Điều mà hầu hết mọi người cũng làm là kết hợp điều này với một trình kích hoạt chèn. Vì vậy, khi một hàng được chèn mà không có ID, trình kích hoạt sẽ kích hoạt để điền ID cho bạn từ trình tự.
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;
Đây là một trong số ít trường hợp hợp lý khi sử dụng trình kích hoạt trong Oracle.