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

Como converter chave primária de inteiro para serial?


serial é um pseudo tipo de dados, não um tipo de dados real. É um integer abaixo com alguns comandos DDL adicionais executados automaticamente:
  1. Crie uma sequência (com o nome correspondente por padrão).
  2. Defina a coluna NOT NULL e o padrão para desenhar a partir dessa sequência.
  3. Torne a coluna "própria" da sequência.

Detalhes:
  • Renomear tabelas de forma segura e limpa que usam colunas de chave primária serial no Postgres?

Uma bigserial é o mesmo, construído em torno de um bigint coluna. Você quer bigint , mas você já conseguiu isso. Para transformar um serial existente coluna em um bigserial (ou smallserial ), tudo que você precisa fazer é ALTER o tipo de dados da coluna. As sequências geralmente são baseadas em bigint , então a mesma sequência pode ser usada para qualquer integer tipo.

Para "alterar" um bigint em um bigserial ou um integer em um serial , você só precisa fazer o resto manualmente:
  • Criando uma sequência PostgreSQL para um campo (que não é o ID do registro)

O tipo de dados real ainda é integer / bigint . Alguns clientes como o pgAdmin exibirão o tipo de dados serial na engenharia reversa CREATE TABLE script, se todos os critérios para um serial são atendidas.