Advanced PostgreSQL: Indexing, Partitioning, Replication · Aula

Índices exclusivos e de chave primária

Entenda como o PostgreSQL cria automaticamente índices para dar suporte a chaves primárias e restrições de exclusividade, e como usar índices exclusivos para impor a integridade dos dados com eficiência.

Aula 4 de 413 etapas

Índices exclusivos e de chave primária é uma aula grátis de Advanced PostgreSQL: Indexing, Partitioning, Replication no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Advanced PostgreSQL: Indexing, Partitioning, Replication, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Advanced PostgreSQL: Indexing, Partitioning, Replication inclui 4 aulas no total.

Partes desta aula ainda não foram traduzidas e aparecem em inglês.

Constraints Need Indexes

To enforce uniqueness, PostgreSQL must check existing rows fast — so it auto-builds a unique index behind every unique constraint and primary key.

Primary Key Index

Declaring a primary key creates a unique B-tree index on those columns and marks them NOT NULL. The code shows it in action.

CREATE TABLE users (
  id SERIAL PRIMARY KEY,
  email TEXT
);

The Hidden Index

That primary key silently builds an index called users_pkey. You never wrote CREATE INDEX, yet lookups by id are already fast.

Unique Constraints

A UNIQUE constraint also creates a supporting index and rejects duplicate values — the ALTER TABLE below adds one.

ALTER TABLE users ADD CONSTRAINT users_email_key UNIQUE (email);

Standalone Unique Index

You can build a unique index directly, without a named constraint — it still enforces uniqueness, as the code shows.

CREATE UNIQUE INDEX idx_users_email ON users (email);

Multi-Column Uniqueness

Index multiple columns together for multi-column uniqueness — like one membership per user per group. The code makes the pair unique.

CREATE UNIQUE INDEX idx_membership ON memberships (user_id, group_id);

NULLs and Uniqueness

PostgreSQL treats NULLs as distinct by default, so a unique column allows many NULLs. Add NULLS NOT DISTINCT to forbid more than one.

CREATE UNIQUE INDEX idx_code ON items (code) NULLS NOT DISTINCT;

Partial Unique Index

A partial unique index enforces uniqueness only on rows matching a WHERE clause — for example, one active session per user.

CREATE UNIQUE INDEX idx_active ON sessions (user_id) WHERE active;

Dual Benefit

A unique index gives you two things at once: data integrity and fast lookups. The planner uses it like any other B-tree index.

Constraint vs Index

The constraint is the logical rule; the index enforces it. You can't drop the index without the constraint, and foreign keys can reference these columns.

Cost Awareness

Unique indexes add write overhead since every insert checks for duplicates. Index only the columns that genuinely need to be unique.

Quick Check

Primary keys, NULLs, partial indexes — let's see what stuck about unique indexes.

Recap

Recap: every primary key and unique constraint is backed by a unique B-tree index for integrity plus speed. You can also go standalone, multi-column, or partial — but each adds write cost.

Grátis para começar

Aprenda Advanced PostgreSQL: Indexing, Partitioning, Replication com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
11
Aulas
44

Perguntas Frequentes

A aula “Índices exclusivos e de chave primária” é grátis?

Sim — o texto completo de “Índices exclusivos e de chave primária” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Advanced PostgreSQL: Indexing, Partitioning, Replication, atualize para CoddyKit PRO. O curso de Advanced PostgreSQL: Indexing, Partitioning, Replication inclui 4 aulas no total.

O que vou aprender em “Índices exclusivos e de chave primária”?

Entenda como o PostgreSQL cria automaticamente índices para dar suporte a chaves primárias e restrições de exclusividade, e como usar índices exclusivos para impor a integridade dos dados com eficiên… Você pratica Advanced PostgreSQL: Indexing, Partitioning, Replication com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Advanced PostgreSQL: Indexing, Partitioning, Replication?

Nenhuma experiência prévia é necessária. Advanced PostgreSQL: Indexing, Partitioning, Replication no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Índices exclusivos e de chave primária”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Advanced PostgreSQL: Indexing, Partitioning, Replication?

Sim. Cada aula de Advanced PostgreSQL: Indexing, Partitioning, Replication inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Por que os índices são importantes
  2. Noções básicas de índices B-tree
  3. Criando e removendo índices
  4. Índices exclusivos e de chave primária
← Voltar para Advanced PostgreSQL: Indexing, Partitioning, Replication