PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Configurazione di una chiave esterna con tipo di dati diverso

In realtà ha senso ecco perché:

In una tabella, infatti, puoi impostare qualsiasi colonna come chiave primaria. Quindi potrebbe essere intero, doppio, stringa, ecc. Anche se oggigiorno utilizziamo principalmente numeri interi o, più recentemente, stringhe come chiave primaria in una tabella.

Poiché la chiave esterna punta alla chiave primaria di un'altra tabella, ecco perché è necessario specificare il tipo di dati della chiave esterna. E ovviamente deve essere lo stesso tipo di dati.

MODIFICA:

Le implementazioni SQL sono permissive in questo caso, come possiamo vedere:consentono tipi compatibili (INT e BIG INT, Float o DECIMAL e DOUBLE) ma ​​a proprio rischio . Proprio come possiamo vedere nel tuo esempio, di seguito.

Tuttavia, le norme SQL specificano che entrambi i tipi di dati devono essere uguali. Se il tipo di dati è un carattere, devono avere la stessa lunghezza, altrimenti, se è un numero intero, devono avere la stessa dimensione e devono entrambi essere firmato o entrambi non firmati .

Puoi vedere da solo qui, un capitolo di un libro MySQL pubblicato nel 2003.

Spero che questo risponda alla tua domanda.