Aggiungere, impostare, modificare o rimuovere la chiave primaria

Importante :  Il presente articolo è stato tradotto automaticamente, vedere la dichiarazione di non responsabilità. Per visualizzare la versione inglese dell'articolo, fare clic qui.

Ogni tabella del database deve avere una chiave primaria, ossia un campo o un set di campi che identificano in modo univoco ogni record memorizzato nella tabella. È possibile usare la chiave primaria per identificare e fare riferimento a ogni record.

Access può creare automaticamente un campo di chiave primaria quando si crea una tabella oppure è possibile specificare manualmente i campi da usare come chiave primaria. Questo articolo spiega come e perché usare le chiavi primarie.

Uno dei motivi per creare una chiave primaria è la creazione di relazioni tra tabelle. Questo argomento non spiega tuttavia come creare relazioni. Per altre informazioni, vedere la sezione Vedere anche.

In questo articolo

Panoramica

Aggiungere una chiave primaria di tipo Numerazione automatica

Specificare i campi da usare come chiave primaria

Rimuovere una chiave primaria

Usare SQL per creare o rimuovere una chiave primaria

Per ulteriori informazioni

Panoramica

Quando si progetta un database, si dividono le informazioni in tabelle in modo che ogni tabella sia relativa a un determinato oggetto, ad esempio Clienti o Ordini. In questo modo si evita la creazione di dati ridondanti o contraddittori.

Ad esempio, a ogni cliente potrebbero essere associati numerosi ordini. Invece di archiviare l'indirizzo del cliente in ogni record della tabella Ordini, si archivia questa informazione una sola volta in un record della tabella Clienti. Per combinare le informazioni sul cliente con le altre informazioni sull'ordine, si crea quindi una relazione fra le due tabelle usando campi chiave.

Chiavi primarie

Una tabella può avere una sola chiave primaria. Una chiave primaria è un campo o un insieme di campi che:

  • Ha un valore univoco per ogni record

  • È indicizzato

  • Identifica il record

È possibile aggiungere la chiave primaria di una tabella in un'altra tabella per creare una relazione tra di esse. Nell'altra tabella, la chiave aggiunta è detta chiave esterna.

Se ad esempio si usa la chiave primaria della tabella Clienti nella tabella Ordini, nella tabella Ordini questa chiave è la chiave esterna.

Chiave primaria e chiave esterna visualizzate tra due fogli dati di Access

1. Chiave primaria

2. Chiave esterna

Chiavi esterne

In parole semplici, una chiave esterna è la chiave primaria di un'altra tabella. I valori di un campo di chiave esterna corrispondono ai valori della chiave primaria, a indicare che i due record sono correlati, come nel caso di un cliente e di un ordine che ha effettuato. A differenza delle chiavi primarie:

  • Una tabella può avere più chiavi esterne.

  • Una chiave esterna non ha necessariamente valori univoci.

  • Una chiave esterna non è in grado di identificare un particolare record in modo affidabile. Ad esempio, non è sempre possibile stabilire quale record si sta visualizzando dalla tabella Ordini basandosi sull'ID cliente.

Le chiavi esterne vengono create durante la creazione di un campo tramite la Ricerca guidata.

Chiavi candidate

A volte una tabella contiene già un buon campo di chiave primaria, come un numero di serie o un codice prodotto. I campi di questo tipo sono detti chiavi candidate.

Ad esempio, in un database che tiene traccia degli esiti degli esami universitari si potrebbe avere una tabella Università. Supponiamo di avere un database ufficiale di istituti universitari che fornisce un numero di codice per ogni università, come l'IPEDS (Department of Education Integrated Postsecondary Education Data System) statunitense. Si potrebbe usare il codice fornito dal sistema come chiave primaria della tabella Università.

Una buona chiave candidata ha le caratteristiche seguenti:

  • Ogni valore è univoco. In tutta la tabella non ci sono due record con lo stesso valore di chiave.

  • Non devono essere mai vuoti o null, ovvero devono sempre contenere un valore.

  • Una volta stabilito, ogni valore è relativamente permanente. Idealmente, i valori nella chiave non cambiano mai, vengono solo aggiunti o rimossi.

Un esempio di scelta inadeguata per una chiave primaria è il nome di un cliente. Benché infatti alcuni nomi siano univoci, alcuni non lo sono. Non potendo avere la certezza che i valori saranno sempre univoci, i nomi non sono buone chiavi candidate.

Quando si crea una nuova tabella in visualizzazione Foglio dati, Access crea automaticamente una chiave primaria e assegna al campo il nome ID e il tipo di dati Contatore. Per impostazione predefinita, in visualizzazione Foglio dati questo campo è nascosto ma è possibile visualizzarlo passando alla visualizzazione Struttura.

Campi Contatore

Se la tabella non contiene chiavi candidate adeguate e non è stata creata in visualizzazione Foglio dati, è possibile aggiungere un campo con il tipo di dati Contatore e quindi usarlo come chiave primaria. Un campo Contatore ottiene automaticamente un nuovo valore univoco per ogni record aggiunto. Anche se si eliminano dei record, i valori non vengono riutilizzati. Un campo Contatore produce pertanto valori univoci per ogni record e costituisce un'adeguata chiave primaria.

Immagine che illustra la tabella Prodotti con il campo chiave primaria.

1. Una colonna con tipo di dati Contatore rappresenta una chiave primaria appropriata poiché garantisce l'univocità di tutti gli ID.

Chiavi composte

In alcuni casi è possibile usare due o più campi che insieme costituiscono la chiave primaria di una tabella. Ad esempio, una tabella Dettagli ordini in cui sono memorizzate le voci d'ordine potrebbe usare come chiave primaria due campi, ovvero ID ordine e ID prodotto. Una chiave con più campi è detta chiave composta.

Nota : Non è possibile creare una chiave esterna composta tramite la Ricerca guidata. Per creare una chiave di questo tipo è possibile usare una query di definizione dei dati per creare un vincolo a più campi. Per altre informazioni, vedere Creare o modificare tabelle o indici usando una query di definizione dei dati.

Inizio pagina

Aggiungere una chiave primaria di tipo Numerazione automatica

  1. Nel riquadro di spostamento fare clic con il pulsante destro del mouse sulla tabella a cui si vuole aggiungere una chiave primaria e quindi scegliere Visualizzazione Struttura dal menu di scelta rapida.

  2. Nella prima riga vuota disponibile nella griglia di struttura della tabella digitare un nome nella colonna Nome campo, ad esempio IDCliente.

  3. Nella colonna Tipo dati fare clic sulla freccia in giù e quindi su Contatore.

  4. In Proprietà campo, in Nuovi valori fare clic su Incremento per utilizzare valori numerici incrementali per la chiave primaria oppure fare clic su Casuale per utilizzare numeri casuali.

  5. Nel gruppo Strumenti della scheda Struttura fare clic su Chiave primaria.

    Gruppo Strumenti nella scheda Struttura

    Un indicatore di chiave viene visualizzato a sinistra del campo Contatore.

    Premere CTRL+S per salvare le modifiche alla struttura della tabella.

Inizio pagina

Specificare i campi da usare come chiave primaria

  1. Nel riquadro di spostamento fare clic con il pulsante destro del mouse sulla tabella per la quale si vuole impostare la chiave primaria e quindi scegliere Visualizzazione Struttura dal menu di scelta rapida.

  2. Selezionare il campo o i campi che si desidera utilizzare come chiave primaria.

    Suggerimento : Per selezionare più campi, tenere premuto CTRL mentre si fa clic su ogni campo.

  3. Nel gruppo Strumenti della scheda Struttura fare clic su Chiave primaria.

    Gruppo Strumenti nella scheda Struttura

    Verrà visualizzato un indicatore di chiave a sinistra del campo o dei campi impostati come chiave primaria.

    Premere CTRL+S per salvare le modifiche alla struttura della tabella.

Inizio pagina

Rimuovere una chiave primaria

Quando si rimuove la chiave primaria di una tabella, il campo o i campi che la componevano non costituiranno più il mezzo principale di identificazione dei record. La rimozione della chiave primaria tuttavia non determina l'eliminazione del campo o dei campi dalla tabella, bensì rimuove la relativa impostazione come chiave primaria.

La rimozione della chiave primaria determina inoltre l'eliminazione dell'indice creato per la chiave stessa.

  1. Per poter rimuovere una chiave primaria, è necessario accertarsi che non faccia parte di alcuna relazione tra tabelle. Se si cerca di rimuovere una chiave primaria per cui esiste una relazione, Access visualizza un avviso che richiede di eliminare prima la relazione.

    Per eliminare una relazione tra tabelle

    1. Se le tabelle in relazione tra loro sono aperte, chiuderle. Non è possibile eliminare una relazione tra tabelle aperte.

    2. Nel gruppo Mostra/Nascondi della scheda Strumenti database fare clic su Relazioni.

      immagine della barra multifunzione di access

    3. Se le tabelle che fanno parte della relazione non sono visualizzate, nel gruppo Relazioni della scheda Progettazione fare clic su Mostra tabella. Selezionare quindi le tabelle da aggiungere nella finestra di dialogo Mostra tabella, fare clic su Aggiungi e quindi scegliere Chiudi.

    4. Fare clic sulla linea della relazione fra tabelle che si vuole eliminare (quando è selezionata, la linea viene visualizzata in grassetto) e quindi premere CANC.

    5. Nel gruppo Relazioni della scheda Progettazione fare clic su Chiudi.

      Gruppo Relazioni nella scheda Progettazione della barra multifunzione

  2. Nel riquadro di spostamento fare clic con il pulsante destro del mouse sulla tabella da cui si vuole rimuovere la chiave primaria e quindi scegliere Visualizzazione Struttura dal menu di scelta rapida.

  3. Selezionare il campo della chiave primaria corrente.

    Se la chiave primaria è costituita da più campi, fare clic sul selettore di riga di ogni campo.

  4. Nel gruppo Strumenti della scheda Progettazione fare clic su Chiave primaria.

    Gruppo Strumenti nella scheda Struttura

    L'indicatore di chiave verrà rimosso dal campo o dai campi precedentemente impostati come chiave primaria.

Nota : Quando si salva una nuova tabella senza impostare una chiave primaria, Access chiede di crearne una. Se si sceglie , viene creato un campo ID con tipo di dati Contatore che restituisce valori univoci per ogni record. Se la tabella include già un campo di tipo Contatore, Access lo usa come chiave primaria.

Inizio pagina

Cambiare una chiave primaria

Per cambiare la chiave primaria di una tabella, eseguire la procedura seguente:

  1. Rimuovere la chiave primaria esistente usando le istruzioni incluse nella sezione Rimuovere una chiave primaria.

  2. Creare una nuova chiave primaria usando le istruzioni incluse nella sezione Specificare i campi da usare come chiave primaria.


Inizio pagina

Usare SQL per creare o rimuovere una chiave primaria

In Access una chiave primaria viene implementata come indice. Quando si usa la visualizzazione Struttura per creare una chiave primaria, Access crea automaticamente l'indice. Se si preferisce, è possibile usare una query di definizione dei dati per creare una chiave primaria. La query può essere riutilizzata ripetutamente per creare la stessa chiave primaria. Può essere utile se si elimina e si ricrea periodicamente una tabella.

Creare una chiave primaria mediante SQL

Per creare una chiave primaria per una tabella esistente occorre usare il comando CREATE INDEX

in una query di definizione dei dati.

  1. Nel gruppo Altro della scheda Crea fare clic su Struttura query.

  2. Chiudere la finestra di dialogo Mostra tabella.

  3. Nel gruppo Tipo di query della scheda Struttura fare clic su Definizione dati.

    La query viene aperta in visualizzazione SQL.

  4. Digitare o incollare il codice SQL seguente nella query:

    CREATE INDEX 
    ON ( )
    WITH PRIMARY
  5. Alla fine della prima riga digitare un nome per l'indice.

    Suggerimento : È consigliabile anteporre al nome le lettere pk per indicare che l'indice è una chiave primaria. Assegnando un nome agli indici di chiave primaria, sarà molto più facile distinguerli dagli altri indici.

  6. Nella seconda riga, dopo la parola chiave ON ma prima delle parentesi, digitare il nome della tabella.

  7. All'interno delle parentesi digitare i campi da usare come chiave primaria. Se si digitano più campi, separare ogni nome con una virgola.

  8. Premere MAIUSC+F12 per salvare la query.

    Nota : Non è possibile creare un indice già esistente. Se si vuole riutilizzare una query che crea una chiave primaria, occorre prima rimuovere la chiave primaria esistente.

Rimuovere una chiave primaria mediante SQL

Per rimuovere una chiave primaria da una tabella occorre usare il comando DROP INDEX

in una query di definizione dei dati.

  1. Nel gruppo Altro della scheda Crea fare clic su Struttura query.

  2. Chiudere la finestra di dialogo Mostra tabella.

  3. Nel gruppo Tipo di query della scheda Struttura fare clic su Definizione dati.

    La query viene aperta in visualizzazione SQL.

  4. Digitare o incollare il codice SQL seguente nella query:

    DROP INDEX 
    ON
  5. Alla fine della prima riga digitare il nome dell'indice.

    Suggerimento : Se non si conosce il nome dell'indice è possibile scoprirlo. Aprire prima di tutto la tabella in visualizzazione Struttura. Quindi nel gruppo Mostra/Nascondi della scheda Progettazione fare clic su Indici.

  6. Nella seconda riga, dopo la parola chiave ON ma prima delle parentesi, digitare il nome della tabella.

  7. Premere MAIUSC+F12 per salvare la query.

Per ulteriori informazioni

Per altre informazioni sulla progettazione dei database e la scelta di una chiave primaria appropriata, vedere gli articoli Nozioni fondamentali sulla progettazione di database e Creare una tabella.

Inizio pagina

Nota : Dichiarazione di non responsabilità per la traduzione automatica: Il presente articolo è stato tradotto tramite un software di traduzione automatica e non da una persona. Microsoft offre le traduzioni automatiche per consentire a coloro che non conoscono la lingua inglese di leggere gli articoli sui prodotti, sui servizi e sulle tecnologie Microsoft. Dal momento che l'articolo è stato tradotto automaticamente, potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli.

Queste informazioni sono risultate utili?

Ottimo! Altri commenti?

Cosa possiamo migliorare?

Grazie per i tuoi commenti e suggerimenti

×