Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Oracle - Modifique uma tabela existente para incrementar automaticamente uma coluna


Você não pode alterar a tabela. O Oracle não oferece suporte a colunas declarativas de incremento automático. Você pode criar uma sequência
CREATE SEQUENCE note_seq
  START WITH 800
  INCREMENT BY 1
  CACHE 100;

Em seguida, você pode criar um gatilho
CREATE OR REPLACE TRIGGER populate_note_id
  BEFORE INSERT ON note
  FOR EACH ROW
BEGIN
  :new.note_id := note_seq.nextval;
END;

ou, se você quiser permitir que os chamadores especifiquem um NOTE_ID não padrão
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;