PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Autoincremento de chave primária do PostgreSQL 9.1


serial é, mais ou menos, um tipo de coluna assim dizendo integer serial é como dizer text text , apenas diga serial :
CREATE TABLE IF NOT EXISTS "category" (
  "id" SERIAL PRIMARY KEY,
  "name" varchar(30) DEFAULT NULL
);

Se você quiser criar a sequência você mesmo, então você quer fazer o valor padrão de id o próximo valor na sequência e isso significa dizer 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 o usual serial comportamento, você também desejará tornar a sequência de propriedade da tabela:
alter sequence your_seq owned by category.id;

Lendo os Tipos de série seção do manual pode ser frutífera.

Eu também recomendo que você não coloque aspas duplas em seus nomes de tabela e coluna, a menos que seja necessário. O PostgreSQL dobrará seus identificadores para letras minúsculas, então id e "id" será a mesma coisa, mas citações desnecessárias são um mau hábito que pode facilmente levar a uma grande confusão de citações em todos os lugares.