serial е, повече или по-малко, тип колона, така че integer serial е като да кажете text text , просто кажете serial :
CREATE TABLE IF NOT EXISTS "category" (
"id" SERIAL PRIMARY KEY,
"name" varchar(30) DEFAULT NULL
);
Ако искате сами да създадете последователността, тогава искате да направите стойността по подразбиране на id следващата стойност в последователността и това означава да кажете 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
);
За симулиране на обичайния serial поведение, което също ще искате да направите последователността, притежавана от таблицата:
alter sequence your_seq owned by category.id;
Четене на серийни типове раздел от ръководството може да е полезен.
Също така бих препоръчал да не поставяте двойни кавички в имената на таблиците и колоните, освен ако не се налага. PostgreSQL ще сгъне вашите идентификатори в малки букви, така че id и "id" ще бъде същото, но ненужното цитиране е лош навик, който лесно може да доведе до голяма бъркотия от цитати навсякъде.