Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Autoincrement Primärschlüssel in der Oracle-Datenbank

Wie Orbman sagt, ist die Standardmethode dafür eine Sequenz. Was die meisten Leute auch tun, ist dies mit einem Insert-Trigger zu koppeln. Wenn also eine Zeile ohne ID eingefügt wird, wird der Trigger ausgelöst, um die ID für Sie aus der Sequenz auszufüllen.

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;

Dies ist einer der wenigen Fälle, in denen es sinnvoll ist, einen Trigger in Oracle zu verwenden.