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

Używanie wartości sekwencyjnych dla klucza podstawowego w zapytaniu INSERT

Dlaczego po prostu nie utworzysz wyzwalacza dla swojej sekwencji w ten sposób:

Sekwencja:

CREATE SEQUENCE LD_USER_ROLE_SEQ
    INCREMENT BY 1 START WITH 1 NOMAXVALUE NOMINVALUE NOCYCLE NOCACHE NOORDER

Wyzwalacz:

CREATE TRIGGER LD_USER_ROLE_INSERT BEFORE INSERT ON LD_USER_ROLE
    REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW
BEGIN
    SELECT LD_USER_ROLE_SEQ.NEXTVAL INTO :NEW.USER_ROLE_ID FROM DUAL;
END;

Wyzwalacz automatycznie otrzyma następną wartość/identyfikator przy każdym wstawieniu (np. auto_increment w mysql).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapobiegaj usuwaniu duplikatów instrukcji Oracle minus

  2. Hibernacja Oracle ORA-01461 CLOB

  3. Lekka przygoda z zakupami

  4. Zwracanie „tabeli” (bez wstępnego definiowania nazw kolumn) z funkcji PL/SQL

  5. Odwracanie ciągu znaków za pomocą indeksu w Oracle