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

PostgreSQL 9.1 primær nøgle autoincrement

serial er mere eller mindre en kolonnetype, så der siger integer serial er som at sige text text , bare sig serial :

CREATE TABLE IF NOT EXISTS "category" (
  "id" SERIAL PRIMARY KEY,
  "name" varchar(30) DEFAULT NULL
);

Hvis du selv vil oprette sekvensen, vil du lave standardværdien id den næste værdi i sekvensen, og det betyder at sige default nextval('your_seq') :

CREATE SEQUENCE your_seq;
CREATE TABLE IF NOT EXISTS "category" (
  "id" integer PRIMARY KEY default nextval('your_seq'),
  "name" varchar(30) DEFAULT NULL
);

For at simulere den sædvanlige serial adfærd vil du også gerne gøre sekvensen ejet af tabellen:

alter sequence your_seq owned by category.id;

Læsning af Serielle typer afsnittet i manualen kan være frugtbart.

Jeg vil også anbefale, at du ikke dobbeltciterer dine tabel- og kolonnenavne, medmindre du er nødt til det. PostgreSQL vil folde dine identifikatorer til små bogstaver, så id og "id" vil være det samme, men unødvendige citater er en dårlig vane, der nemt kan føre til et stort rod af citater overalt.



  1. Sådan bruger du dj-database-url, mens du forbinder med postgresql i heroku ved hjælp af python

  2. Fejl ved erklæring af heltalsvariabel inde i MySQL-lagret funktion

  3. Indstilling af Identitet til til eller fra i SQL-server

  4. SQL:Tæl antallet af forekomster, der forekommer på outputkolonnen, og beregn en procentdel baseret på forekomsterne