Come dice Orbman, il modo standard per farlo è con una sequenza. Ciò che la maggior parte delle persone fa anche è accoppiare questo con un trigger di inserimento. Quindi, quando una riga viene inserita 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.
fonte
2010-04-07 04:12:14
possibile duplicato di http://stackoverflow.com/questions/317001/autoincrement-in-oracle – DCookie