sql >> Base de Datos >  >> RDS >> Oracle

Oracle:modifique una tabla existente para incrementar automáticamente una columna

No puedes modificar la tabla. Oracle no admite columnas de incremento automático declarativas. Puedes crear una secuencia

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

Luego, puede crear un disparador

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

o, si desea permitir que las personas que llaman especifiquen un NOTE_ID no predeterminado

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;