Indici univoci e chiavi primarie
Comprenda come PostgreSQL supporti automaticamente chiavi primarie e vincoli univoci con gli indici e come usare gli indici univoci per garantire l'integrità dei dati in modo efficiente.
Indici univoci e chiavi primarie è una lezione Advanced PostgreSQL: Indexing, Partitioning, Replication gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Advanced PostgreSQL: Indexing, Partitioning, Replication, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Advanced PostgreSQL: Indexing, Partitioning, Replication include 4 lezioni in totale.
Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.
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.
Impara Advanced PostgreSQL: Indexing, Partitioning, Replication con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 11
- Lezioni
- 44
Domande Frequenti
La lezione «Indici univoci e chiavi primarie» è gratuita?
Sì — il testo completo di «Indici univoci e chiavi primarie» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Advanced PostgreSQL: Indexing, Partitioning, Replication, passa a CoddyKit PRO. Il corso Advanced PostgreSQL: Indexing, Partitioning, Replication include 4 lezioni in totale.
Cosa imparerò in «Indici univoci e chiavi primarie»?
Comprenda come PostgreSQL supporti automaticamente chiavi primarie e vincoli univoci con gli indici e come usare gli indici univoci per garantire l'integrità dei dati in modo efficiente. Eserciti Advanced PostgreSQL: Indexing, Partitioning, Replication con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Advanced PostgreSQL: Indexing, Partitioning, Replication?
Non è richiesta alcuna esperienza precedente. Advanced PostgreSQL: Indexing, Partitioning, Replication su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Indici univoci e chiavi primarie»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Advanced PostgreSQL: Indexing, Partitioning, Replication?
Sì. Ogni lezione Advanced PostgreSQL: Indexing, Partitioning, Replication include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Perché gli indici sono importanti
- Nozioni di base sugli indici B-tree
- Creazione ed eliminazione degli indici
- Indici univoci e chiavi primarie