Introduzione
Aggiungere una chiave primaria a una tabella esistente in PostgreSQL è un'operazione che amministratori di database e sviluppatori eseguono per garantire l'integrità dei dati e ottimizzare le prestazioni del database. Questo tutorial ti guida passo passo nell'aggiunta di una chiave primaria a una tabella esistente in PostgreSQL, spiegando i comandi SQL necessari e gli aspetti da considerare.
Prerequisiti
- Accesso a un database PostgreSQL
- Privilegi sufficienti per modificare la struttura delle tabelle
- Conoscenza di base di SQL e dei concetti di database
Cosa sono le chiavi primarie
Una chiave primaria è una colonna o un gruppo di colonne che identifica in modo univoco ogni riga di una tabella. Deve contenere valori univoci e non può contenere valori NULL. Una tabella può avere una sola chiave primaria.
Passo 1: verifica la struttura attuale della tabella
Prima di aggiungere una chiave primaria, controlla la struttura attuale della tabella per assicurarti che non ne abbia già una e per decidere quali colonne potrebbero fare da chiave.
Puoi farlo in due modi: dalla riga di comando oppure visivamente in Beekeeper Studio.
Opzione 1 — Con psql
-- Replace 'your_table' with your table name
\d your_table
Mostra colonne, indici e vincoli della tabella direttamente in psql.
Opzione 2 — Con Beekeeper Studio
Fai clic destro sulla tabella in Beekeeper Studio e seleziona View Structure per vedere visivamente tutte le colonne, gli indici e i vincoli.

Passo 2: scegli la colonna giusta
Scegli una colonna che sia sicuramente univoca per ogni riga. Se non esiste, potresti dover creare una nuova colonna o usare una combinazione di colonne per formare una chiave composta.
Passo 3: aggiungi una chiave primaria
Chiave primaria su una sola colonna
Se scegli una singola colonna che identifica in modo univoco ogni riga, e sei connesso al database corretto, puoi usare questa sintassi SQL:
-- Replace 'your_table' and 'column_name' with your actual table name and column name
ALTER TABLE your_table
ADD PRIMARY KEY (column_name);
Ad esempio, se vuoi aggiungere una chiave primaria a una tabella chiamata customer con le colonne customer_id, first_name e last_name, puoi usare questo comando ALTER TABLE:
ALTER TABLE customer ADD PRIMARY KEY (customer_id);
In questo modo crei una chiave primaria sulla colonna customer_id.
Aggiungere una chiave primaria composta a una tabella esistente
In alternativa, puoi creare una chiave primaria composta da più colonne, così:
ALTER TABLE customer ADD PRIMARY KEY (first_name, last_name);
In questo modo crei una chiave primaria composta dalle colonne first_name e last_name.
Passo 4: verifica la nuova chiave primaria
Dopo aver aggiunto la chiave primaria, è importante verificare che sia stata applicata correttamente alla tabella.
-- Check the constraints on the table to confirm the primary key exists
SELECT conname, contype
FROM pg_constraint
WHERE conrelid = 'your_table'::regclass;
Se preferisci usare una GUI, Beekeeper Studio mostra automaticamente un'icona a forma di chiave accanto alla colonna primaria nella scheda Structure non appena il vincolo viene aggiunto.
Output atteso con customer
conname | contype
------------------------------+---------
customer_pkey | p
customer_support_rep_id_fkey | f
contype p indica un vincolo di chiave primaria.
Cosa considerare quando aggiungi una chiave primaria
- Univocità dei dati: assicurati che le colonne che diventano chiave primaria abbiano dati univoci in tutte le righe.
- Prestazioni: aggiungere una chiave primaria su tabelle grandi può richiedere molte risorse e molto tempo. Valuta delle finestre di manutenzione per le tabelle grandi.
- Integrità dei dati: una volta aggiunto il vincolo di chiave primaria, qualsiasi operazione di insert o update che tenti di introdurre voci duplicate genererà un errore.
Riepilogo
Aggiungere una chiave primaria a una tabella esistente in PostgreSQL aiuta a mantenere l'integrità dei dati e a migliorare le prestazioni.
Che tu preferisca l'SQL da riga di comando o un flusso di lavoro visivo, strumenti come Beekeeper Studio rendono facile ispezionare lo schema, verificare i nuovi vincoli ed evitare errori.
Vuoi verificare la sintassi SQL prima di eseguirla? Prova il nostro SQL Syntax Checker gratuito e, quando sei pronto ad applicare le modifiche, apri il tuo database in Beekeeper Studio per vedere subito i risultati.
Beekeeper Studio è una GUI per database gratuita & open source
Il miglior strumento per query & editor SQL che abbia mai usato. Offre tutto ciò che mi serve per gestire il mio database. - ⭐⭐⭐⭐⭐ Mit
Beekeeper Studio è veloce, intuitivo e facile da usare. Beekeeper supporta tantissimi database e funziona alla grande su Windows, Mac e Linux.
Cosa dicono gli utenti di Beekeeper Studio
"Beekeeper Studio ha sostituito completamente il mio vecchio flusso di lavoro SQL. È veloce, intuitivo e rende di nuovo piacevole lavorare con i database."
"Ho provato molte GUI per database, ma Beekeeper trova l'equilibrio perfetto tra funzionalità e semplicità. Funziona e basta."