A Pegadinha do Auto-Incremento: Como o SERIAL do PostgreSQL se compara a outros SGBDs

Published: (March 5, 2026 at 10:25 AM EST)
2 min read
Source: Dev.to

Source: Dev.to

🐘 O que é o SERIAL no PostgreSQL?

A primeira coisa que você precisa saber e que “buga” a cabeça de muita gente: o SERIAL não é um tipo de dado real. Ele é uma “pseudo‑tipagem”, um atalho de conveniência que o Postgres criou para facilitar a nossa vida. Quando você define uma coluna como SERIAL, o banco de dados faz três coisas automaticamente por debaixo dos panos:

  • Cria um objeto gerador de números chamado SEQUENCE.
  • Define o tipo real da sua coluna como INTEGER.
  • Adiciona uma restrição DEFAULT na coluna, dizendo que, se você não enviar um ID no seu INSERT, o banco deve puxar o próximo número gerado pela sequência (1, 2, 3…).

Exemplo na prática (PostgreSQL)

CREATE TABLE funcionario (
    id SERIAL PRIMARY KEY,
    nome VARCHAR(255),
    data_admissao DATE
);

🌍 Como o Auto‑Incremento funciona em outros Bancos?

O SQL tem um padrão universal (ANSI), mas na hora de criar IDs automáticos, cada fabricante decidiu seguir o seu próprio caminho. Veja como a mesma tabela seria criada nos principais SGBDs:

1. MySQL e MariaDB (O Clássico)

CREATE TABLE funcionario (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nome VARCHAR(255),
    data_admissao DATE
);

2. SQL Server / T‑SQL (O Jeito Microsoft)

CREATE TABLE funcionario (
    id INT IDENTITY(1,1) PRIMARY KEY,
    nome VARCHAR(255),
    data_admissao DATE
);

3. Oracle (A Evolução)

CREATE TABLE funcionario (
    id NUMBER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
    nome VARCHAR2(255),
    data_admissao DATE
);

4. SQLite (O Simples e Local)

CREATE TABLE funcionario (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    nome TEXT,
    data_admissao DATE
);

🎯 Conclusão

Entender que o SQL tem suas “gírias locais” dependendo do SGBD é o que separa um iniciante de um desenvolvedor mais maduro (e salva a sua pele em provas de concurso ou testes técnicos de vagas).

Na próxima vez que o seu script falhar ao trocar de banco de dados, lembre‑se de checar como aquele sistema específico prefere chamar as coisas!

0 views
Back to Blog

Related posts

Read more »