Oracle
 sql >> Database >  >> RDS >> Oracle

Oracle - Modifica una tabella esistente per incrementare automaticamente una colonna

Non puoi modificare la tabella. Oracle non supporta le colonne dichiarative con incremento automatico. Puoi creare una sequenza

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

Quindi, puoi creare un trigger

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

oppure, se desideri consentire ai chiamanti di specificare un NOTE_ID non predefinito

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;