sql >> Databáze >  >> RDS >> Oracle

Autoincrement Primární klíč v databázi Oracle

Jak říká Orbman, standardní způsob, jak to udělat, je pomocí sekvence. Většina lidí to také spojí s vložkou spouště. Když je tedy vložen řádek bez ID, spustí se spouštěč, aby za vás vyplnil ID ze sekvence.

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;

Toto je jeden z mála případů, kdy má smysl používat trigger v Oracle.



  1. Změňte vloženou hodnotu pomocí triggeru

  2. SQL dotaz na celkový počet bodů v okruhu umístění

  3. Jak se připojíte k serveru LDAP pomocí node-oracledb?

  4. Jednoduchý dotaz k získání maximální hodnoty pro každé ID