Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Autoinkrementacja klucza podstawowego w bazie danych Oracle

Jak mówi Orbman, standardowym sposobem na to jest sekwencja. Większość ludzi również łączy to z wyzwalaczem wstawiania. Tak więc, gdy wiersz jest wstawiany bez identyfikatora, wyzwalacz uruchamia się, aby wypełnić dla ciebie identyfikator z sekwencji.

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;

To jeden z niewielu przypadków, w których użycie wyzwalacza w Oracle ma sens.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cx_Oracle przekroczenie limitu czasu

  2. Autoinkrementacja klucza podstawowego w bazie danych Oracle

  3. Dostawca „MSDAORA.1” nie jest zarejestrowany na komputerze lokalnym

  4. Jak uzyskać datę z ciągu w Oracle?

  5. Problem z rownum w zapytaniu Oracle