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

Oracle - Ändern Sie eine vorhandene Tabelle, um eine Spalte automatisch zu inkrementieren

Sie können die Tabelle nicht ändern. Oracle unterstützt keine deklarativen automatisch inkrementierenden Spalten. Sie können eine Sequenz erstellen

CREATE SEQUENCE note_seq
  START WITH 800
  INCREMENT BY 1
  CACHE 100;

Anschließend können Sie einen Trigger erstellen

CREATE OR REPLACE TRIGGER populate_note_id
  BEFORE INSERT ON note
  FOR EACH ROW
BEGIN
  :new.note_id := note_seq.nextval;
END;

oder wenn Sie Anrufern erlauben möchten, eine nicht standardmäßige NOTE_ID anzugeben

CREATE OR REPLACE TRIGGER populate_note_id
  BEFORE INSERT ON note
  FOR EACH ROW
BEGIN
  IF( :new.note_id is null )
  THEN 
    :new.note_id := note_seq.nextval;
  END IF;
END;