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

Sådan tilføjes en sekvenskolonne til en eksisterende tabel med poster

Du skal tilføje en kolonne

ALTER TABLE userlog
  ADD( user_id number );

oprette en sekvens

CREATE SEQUENCE user_id_seq
  START WITH 1
  INCREMENT BY 1
  CACHE 20;

Opdater dataene i tabellen

UPDATE userlog
   SET user_id = user_id_seq.nextval

Forudsat at du vil have user_id for at være den primære nøgle, vil du derefter tilføje den primære nøgle begrænsning

ALTER TABLE userlog
  ADD CONSTRAINT pk_user_id PRIMARY KEY( user_id );

Hvis du vil bruge sekvensen til automatisk at tilføje user_id når du laver en INSERT (den anden mulighed ville være at henvise specifikt til user_id_seq.nextval i din INSERT udsagn, skal du også bruge en trigger

CREATE OR REPLACE TRIGGER trg_userlog_user_id
  BEFORE INSERT ON userlog
  FOR EACH ROW
BEGIN
  :new.user_id := user_id_seq.nextval;
END;


  1. Brug af OPENQUERY med en Oracle-database til at forespørge om et datointerval

  2. Opret begrænsninger i ændre tabel uden at kontrollere eksisterende data

  3. Forældede funktioner til at tage ud af din værktøjskasse – Del 2

  4. Hvordan forbedrer jeg den datobaserede forespørgselsydeevne på en stor tabel?