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.