2015-06-18 18 views
14

Se definisco una colonna come chiave primaria in MySql, è anche una chiave univoca per impostazione predefinita o devo anche definirla come chiave univoca (nel caso in cui voglio che sia univoca)?MySql - La chiave primaria è unica per impostazione predefinita?

Ho visto questa domanda What is the difference b/w Primary Key and Unique Key che spiega la differenza tra i due ma non risponde esattamente alla mia domanda. PK è UK per impostazione predefinita o ho bisogno di definirlo esplicitamente.

+0

possibile duplicato di [Qual è la differenza b/n Chiave primaria e chiave univoca] (http://stackoverflow.com/questions/2973420/what-is-the-difference-bw-primary-key-and-unique -key) – Akhil

+1

@Akhil - Ho visto questa domanda nel link, che spiega la differenza tra i due, ma non risponde esattamente alla mia domanda. PK è UK per impostazione predefinita o ho bisogno di definirlo esplicitamente. –

+0

possibile duplicato di [differenza tra chiave primaria e chiave univoca] (http://stackoverflow.com/questions/9565996/difference- between-primary-key-and-unique-key) –

risposta

16

Primary key is always unique in ogni SQL. Non devi definirlo esplicitamente come UNICO.

Nota a margine: È possibile avere solo una chiave primaria in una tabella e non consente mai valori nulli. Inoltre, è possibile avere solo un vincolo di chiave primaria nella tabella (poiché il punto di creazione di una chiave primaria è identificare in modo univoco la riga nella tabella) ma è possibile che più di un vincolo di chiave univoco nella tabella.

Esempio:

Una tabella dettagli sui dipendenti avendo EmpID come chiave primaria e EmpPhoneNo come chiave unica.

+2

un altro punto: un tavolo può avere ** solo un vincolo PRIMARY KEY ** ma può contenere tutti i vincoli UNIQUE KEY – Bikku

+0

@GoodBadandUgly: - Sì, un buon punto! +1 –

+0

In realtà ci sono più differenze tra chiave univoca e primaria, come la chiave primaria non può essere NULL. Ma non è questa la domanda. –

3

La chiave primaria è sempre univoca per definizione. Non solo in MySQL. Quindi non è necessaria alcuna chiave univoca aggiuntiva.

Problemi correlati