Respostas:
duas opções: Use o "datatype" SERIAL ou crie uma sequência e use essa sequência como um valor padrão para o seu número inteiro:
CREATE SEQUENCE your_seq;
CREATE TABLE foo(
id int default nextval('your_seq'::regclass),
other_column TEXT
);
INSERT INTO foo(other_column) VALUES ('bar') RETURNING *;
Se você quiser fazer isso no PGAdmin, é muito mais fácil do que usar a linha de comando. Parece que no PostgreSQL, para adicionar um incremento automático a uma coluna, primeiro precisamos criar uma sequência de incremento automático e adicioná-la à coluna necessária. Eu fiz assim.
1) Primeiro, você precisa se certificar de que existe uma chave primária para sua tabela. Mantenha também o tipo de dados da chave primária em bigint ou smallint. (Usei bigint, não foi possível encontrar um tipo de dados chamado serial, conforme mencionado em outras respostas em outros lugares)
2) Em seguida, adicione uma sequência clicando com o botão direito do mouse em sequência-> adicionar nova sequência . Se não houver dados na tabela, deixe a sequência como está, não faça alterações. Apenas salve. Se houver dados existentes, adicione o último ou o valor mais alto na coluna da chave primária ao valor Atual na guia Definições, como mostrado abaixo.
3) Finalmente, adicione a linha nextval('your_sequence_name'::regclass)
ao valor padrão na sua chave primária, como mostrado abaixo.
Verifique se o nome da sequência está correto aqui. Isso é tudo e o incremento automático deve funcionar.
SERIAL
?
GENERATED BY DEFAULT AS IDENTITY
introduzido com Postgres> = 10.