sql >> Database >  >> RDS >> PostgreSQL

Hoe voeg ik een automatisch oplopende primaire sleutel toe aan een bestaande tabel in PostgreSQL?

(Bijgewerkt - Bedankt aan de mensen die hebben gereageerd )

Moderne versies van PostgreSQL

Stel dat u een tabel heeft met de naam test1 , waaraan u een automatisch oplopende, primaire sleutel id . wilt toevoegen (surrogaat) kolom. Het volgende commando zou voldoende moeten zijn in recente versies van PostgreSQL:

   ALTER TABLE test1 ADD COLUMN id SERIAL PRIMARY KEY;

Oudere versies van PostgreSQL

In oude versies van PostgreSQL (vóór 8.x?) moest je al het vuile werk opknappen. De volgende reeks opdrachten zou moeten volstaan:

  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');

Nogmaals, in recente versies van Postgres is dit ongeveer gelijk aan het enkele commando hierboven.



  1. Hoe kan ik Date Datatype gebruiken in SQL Server?

  2. Hele DataTable in één keer in de database invoegen in plaats van rij voor rij?

  3. Gebruiksscenario's voor MariaDB en Docker, deel 1

  4. Hoe CHR() werkt in MariaDB