Como especifico que uma coluna deve ser incrementada automaticamente no pgAdmin?


14

Comecei a aprender o pgAdmin III a gerenciar um banco de dados PostgreSQL. Mas não era um aplicativo fácil de usar.

Se eu crio ou criei uma tabela com o pgAdmin III, como posso adicionar a funcionalidade "incremento automático" em um ID de coluna que possui o tipo inteiro?

Respostas:


17

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 *;

1
Esta resposta poderia ser atualizado para incluir GENERATED BY DEFAULT AS IDENTITYintroduzido com Postgres> = 10.
Madbreaks

15

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. insira a descrição da imagem aqui

3) Finalmente, adicione a linha nextval('your_sequence_name'::regclass)ao valor padrão na sua chave primária, como mostrado abaixo.

insira a descrição da imagem aqui Verifique se o nome da sequência está correto aqui. Isso é tudo e o incremento automático deve funcionar.


4
Discordo do "mais fácil no PgAdmin". Você acha que passar por cliques é mais fácil do que simplesmente criar uma coluna SERIAL?
ypercubeᵀᴹ

1
Devo dizer mais fácil para aqueles que estão acostumados a GUIs e se você não estiver familiarizado com as linhas de comando. :)
toing_toing 30/10/2015
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.