sql >> Database teknologi >  >> RDS >> Oracle

Autoincrement Primær nøgle i Oracle-database

Som Orbman siger, er standardmåden at gøre det med en sekvens. Hvad de fleste også gør, er at koble dette sammen med en indstiksudløser. Så når en række indsættes uden et ID, udløses triggeren for at udfylde ID'et for dig fra sekvensen.

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;

Dette er et af de få tilfælde, hvor det giver mening at bruge en trigger i Oracle.



  1. symboliserer et metafelt

  2. Skinnemodellering:konvertering af HABTM til has_many :through

  3. Postgresql datoformat

  4. MySQL-forbindelsesfejl i Java - com.mysql.jdbc.Driver