serial
es, más o menos, un tipo de columna que dice integer serial
es como decir text text
, solo di serial
:
CREATE TABLE IF NOT EXISTS "category" (
"id" SERIAL PRIMARY KEY,
"name" varchar(30) DEFAULT NULL
);
Si desea crear la secuencia usted mismo, debe establecer el valor predeterminado de id
el siguiente valor en la secuencia y eso significa decir 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
);
Para simular el habitual serial
comportamiento, también querrá hacer que la secuencia sea propiedad de la tabla:
alter sequence your_seq owned by category.id;
Leyendo los Tipos de serie sección del manual podría ser fructífera.
También le recomiendo que no entre comillas dobles en los nombres de sus tablas y columnas a menos que tenga que hacerlo. PostgreSQL doblará sus identificadores a minúsculas, de modo que id
y "id"
será lo mismo, pero las citas innecesarias son un mal hábito que puede conducir fácilmente a un gran lío de citas en todas partes.