sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan tilføjer man en auto-incrementing primær nøgle til en eksisterende tabel i PostgreSQL?

(Opdateret - tak til de personer, der kommenterede )

Moderne versioner af PostgreSQL

Antag, at du har en tabel ved navn test1 , hvortil du vil tilføje en auto-incrementerende primærnøgle id (surrogat) kolonne. Følgende kommando burde være tilstrækkelig i nyere versioner af PostgreSQL:

   ALTER TABLE test1 ADD COLUMN id SERIAL PRIMARY KEY;
 

Ældre versioner af PostgreSQL

I gamle versioner af PostgreSQL (før 8.x?) skulle du gøre alt det beskidte arbejde. Følgende sekvens af kommandoer burde gøre tricket:

ALTER TABLE test1 ADD COLUMN id INTEGER; CREATE SEQUENCE test_id_seq OWNED BY test1.id; ALTER TABLE test ALTER COLUMN id SET DEFAULT nextval('test_id_seq'); UPDATE test1 SET id = nextval('test_id_seq');

Igen, i nyere versioner af Postgres svarer dette nogenlunde til den enkelte kommando ovenfor.



  1. Sådan genererer du indsæt-sætninger fra tekstfiler til SQL Server-tabel i SQL Server - SQL Server / TSQL Tutorial Del 106

  2. Sådan gulvnumre i SQL

  3. Kan der opstå dødvande med samme adgangsmetode?

  4. AMD, Intel og PostgreSQL