serial
jest mniej więcej typem kolumny, czyli integer serial
jest jak powiedzenie text text
, po prostu powiedz serial
:
CREATE TABLE IF NOT EXISTS "category" (
"id" SERIAL PRIMARY KEY,
"name" varchar(30) DEFAULT NULL
);
Jeśli chcesz sam utworzyć sekwencję, chcesz ustawić domyślną wartość id
następną wartość w sekwencji, a to oznacza powiedzenie 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
);
Aby zasymulować zwykły serial
zachowanie, będziesz także chciał, aby sekwencja była własnością tabeli:
alter sequence your_seq owned by category.id;
Zapoznanie się z Typami szeregowymi część instrukcji może być owocna.
Zalecam również, aby nie cytować podwójnie nazw tabel i kolumn, chyba że jest to konieczne. PostgreSQL złoży twoje identyfikatory do małych liter, więc id
i "id"
będzie to samo, ale niepotrzebne cytowanie jest złym nawykiem, który może łatwo doprowadzić do ogromnego bałaganu w cytatach wszędzie.