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 NULL
e 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.