PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Auto-incrémentation de la clé primaire PostgreSQL 9.1

serial est, plus ou moins, un type de colonne, c'est-à-dire integer serial revient à dire text text , dites simplement serial :

CREATE TABLE IF NOT EXISTS "category" (
  "id" SERIAL PRIMARY KEY,
  "name" varchar(30) DEFAULT NULL
);

Si vous souhaitez créer la séquence vous-même, vous souhaitez définir la valeur par défaut de id la valeur suivante dans la séquence et cela signifie 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
);

Pour simuler le serial habituel vous souhaiterez également que la séquence appartienne à la table :

alter sequence your_seq owned by category.id;

Lecture des Types de série section du manuel pourrait être fructueuse.

Je vous recommande également de ne pas mettre entre guillemets les noms de vos tables et de vos colonnes, sauf si vous y êtes obligé. PostgreSQL pliera vos identifiants en minuscules donc id et "id" sera la même chose, mais les citations inutiles sont une mauvaise habitude qui peut facilement conduire à un grand désordre de citations partout.