sql >> Base de Datos >  >> RDS >> PostgreSQL

Incremento automático de la clave principal de PostgreSQL 9.1

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.