sql >> Database >  >> RDS >> PostgreSQL

Tabelkolom automatisch verhogen

Postgres 10 of hoger

serial kolommen (zie hieronder) blijven ongewijzigd. Maar overweeg een IDENTITY kolom. Postgres 10 implementeert deze standaard-SQL-functie.

Basissyntaxis en info in de handleiding voor CREATE TABLE .
Gedetailleerde uitleg in dit blogbericht van hoofdauteur Peter Eisentraut.

Maken tabel met IDENTITY kolom

CREATE TABLE staff (
   staff_id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY
 , staff    text NOT NULL
);

Toevoegen IDENTITY kolom naar bestaande tabel

Tabel kan al dan niet worden gevuld met rijen.

ALTER TABLE staff ADD COLUMN staff_id int GENERATED BY DEFAULT AS IDENTITY;

Om er tegelijkertijd ook PK van te maken (tafel kan nog geen PK hebben):

ALTER TABLE staff ADD COLUMN staff_id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY;

Gerelateerd:

  • Hoe voeg ik een PostgreSQL 10-identiteitskolom toe aan een bestaande tabel met rijen?

Vervangen serial met IDENTITY kolom

Zie:

  • Hoe verander je een tabel-ID van serieel naar identiteit?

Postgres 9.6 of ouder

(Of eigenlijk elke versie.)
Gebruik de serial pseudo-gegevenstype in plaats daarvan:

CREATE TABLE staff (
   staff_id serial PRIMARY KEY,
 , staff    text NOT NULL
);

Het creëert en koppelt het sequentie-object automatisch en stelt de DEFAULT . in naar nextval() uit de volgorde. Het doet alles wat je nodig hebt.

In mijn voorbeeld heb ik kleine letters gebruikt. Maakt uw leven met Postgres gemakkelijker.



  1. Realtime gegevensmaskering met behulp van triggers

  2. Kunnen tabelkolommen met een externe sleutel NULL zijn?

  3. Room Migration Alter Table voegt geen nieuwe kolom toe &migreert steeds opnieuw gebeld worden

  4. Wat is het meest geschikte gegevenstype voor het opslaan van een IP-adres in de SQL-server?