serial é um pseudo tipo de dados, não um tipo de dados real. É um integer abaixo com alguns comandos DDL adicionais executados automaticamente:- Crie uma sequência (com o nome correspondente por padrão).
- Defina a coluna
NOT NULLe o padrão para desenhar a partir dessa sequência. - 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.