Definire una chiave primaria su più colonne

Su una tabella di un database PostgreSQL posso definire una chiave primaria come composta da 3 colonne (campi)?

In Corso 1
PostgreSQL 23-06-2018 1 Risposta 4410 Visite +1
Gregorio Mercenesi

Gregorio Mercenesi

Autore di questa domanda

Risposte ( 1 approvate )

  1. Emanuele Segatti
    +1
    23-06-2018 16:07:13
    Rispondi

    Si certo che puoi, una chiave primaria (primary key) può essere definita su più campi (colonne) e la definizione è analoga a quella del vincolo unico, basta specificare l'elenco delle colonne per le quali desideri che sia soddisfatto il vincolo di univocità, ad esempio in questo modo:

    CREATE TABLE MyTable(
        col1 integer,
        col2 integer,
        col3 integer,
        PRIMARY KEY (col1, col3)
    );

    Questo significa che sia la colonna 1 che la 3 sono usate come identificatore univoco per le righe della tua tabella, essa potrà avere più righe con col1 o col3 uguali ma solo una con una specifica coppia di valori per col1 e col3.

    Ti dirò di più, in teoria una tabella di database può avere anche più di una chiave primaria, anche se questa non è una buona prassi e non viene praticamente mai usata.

Rispondi

Per poter rispondere a questa domanda, devi essere registrato e loggato sul sito, dopodichè compila il box sottostante cercando di essere il più chiaro ed esauriente possibile, la tua risposta potrebbe essere la soluzione che l'utente cerca ed essere contrassegnata come migliore, consentendoti così di ottenere punti ed autorevolezza.

 Domanda Precedente

 Elenco Domande 

Domanda Successiva