◀ MAPA DE QUESTS
◀253/555
QUEST #253 · DDLQuiz
O Segredo do SERIAL
O mestre-construtor forjou a tabela de poções com `id SERIAL PRIMARY KEY`. Os aprendizes inseriram duas poções sem informar o id e, como mágica, apareceram os números 1 e 2. De onde eles vieram?
LV.1+60 XP
📖 CONCEITO
SERIAL não é um tipo de verdade, é um atalho: o Postgres cria uma coluna INT, uma SEQUENCE (um contador) chamada tabela_coluna_seq e define o DEFAULT da coluna como nextval('tabela_coluna_seq'). Quando o INSERT não informa o id, a sequência entrega o próximo número. A forma moderna, do padrão SQL, é INT GENERATED ALWAYS AS IDENTITY, que funciona do mesmo jeito com regras mais rígidas.
EXEMPLO DE USO
CREATE TABLE pocoes (
id SERIAL PRIMARY KEY,
nome TEXT NOT NULL
);
INSERT INTO pocoes (nome) VALUES ('Cura'), ('Mana')
RETURNING id, nome;🗄️ SCHEMA
Tabela `pocoes` (id SERIAL PRIMARY KEY, nome TEXT NOT NULL), recém-criada. Visão do sistema `information_schema.columns` (table_name, column_name, data_type, column_default, ...)🎯 DESAFIO
Ao declarar `id SERIAL PRIMARY KEY`, o que o Postgres faz por baixo dos panos?