Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Verwenden sequenzieller Werte für den Primärschlüssel in einer INSERT-Abfrage

Warum erstellen Sie nicht einfach einen Trigger für Ihre Sequenz wie diesen:

Reihenfolge:

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

Auslöser:

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;

Der Trigger erhält automatisch den nächsten Wert/die nächste ID bei jeder Einfügung (wie auto_increment in mysql).