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

Autoincremento della chiave primaria di PostgreSQL 9.1

serial è, più o meno, un tipo di colonna così detto integer serial è come dire text text , dì semplicemente serial :

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

Se vuoi creare tu stesso la sequenza, devi impostare il valore predefinito di id il valore successivo nella sequenza e questo significa dire 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
);

Per simulare il solito serial comportamento vorrai anche creare la sequenza di proprietà della tabella:

alter sequence your_seq owned by category.id;

Lettura dei Tipi seriali sezione del manuale potrebbe essere fruttuosa.

Ti consiglio inoltre di non citare due volte i nomi di tabelle e colonne a meno che non sia necessario. PostgreSQL ripiegherà i tuoi identificatori in minuscolo, quindi id e "id" sarà la stessa cosa, ma citazioni non necessarie sono una cattiva abitudine che può facilmente portare a un gran pasticcio di citazioni ovunque.