sql >> Database >  >> RDS >> Oracle

Primaire sleutel automatisch verhogen in Oracle-database

Zoals Orbman zegt, is de standaardmanier om dit te doen met een reeks. Wat de meeste mensen ook doen, is dit koppelen aan een invoegtrigger. Dus wanneer een rij wordt ingevoegd zonder een ID, wordt de trigger geactiveerd om de ID voor u uit de reeks in te vullen.

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;

Dit is een van de weinige gevallen waarin het zinvol is om een ​​trigger in Oracle te gebruiken.



  1. Gebruik string[][] met ngpsql

  2. Uw ultieme gids voor SQL Join:CROSS JOIN - Deel 3

  3. Laravel 1048 Kolom kan niet NULL zijn bij het opslaan van gegevens

  4. Hoe definieer je een pl sql-functie met dynamische retourtypen in Oracle?