sql >> Databasteknik >  >> RDS >> Oracle

Hur man lägger till en sekvenskolumn till en befintlig tabell med poster

Du skulle behöva lägga till en kolumn

ALTER TABLE userlog
  ADD( user_id number );

skapa en sekvens

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

Uppdatera data i tabellen

UPDATE userlog
   SET user_id = user_id_seq.nextval

Förutsatt att du vill ha user_id för att vara primärnyckeln skulle du sedan lägga till primärnyckelns begränsning

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

Om du vill använda sekvensen för att automatiskt lägga till user_id när du gör en INSERT (det andra alternativet skulle vara att specifikt referera till user_id_seq.nextval i din INSERT uttalanden skulle du också behöva 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. Bästa sättet att implementera klient <-> Server <-> Databasarkitektur i en Android-applikation?

  2. Tjäna pengar med oanvända saker:En datamodell för delningsekonomi

  3. SQL, hur man uppdaterar data

  4. flask-login:kan inte förstå hur det fungerar