Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle - Modifier une table existante pour incrémenter automatiquement une colonne

Vous ne pouvez pas modifier le tableau. Oracle ne prend pas en charge les colonnes auto-incrémentées déclaratives. Vous pouvez créer une séquence

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

Ensuite, vous pouvez créer un déclencheur

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

ou, si vous souhaitez autoriser les appelants à spécifier un NOTE_ID autre que celui par défaut

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;