logo

Chiave univoca MySQL

Una chiave univoca in MySQL è un singolo campo o una combinazione di campi che garantisce che tutti i valori archiviati nella colonna siano univoci. Significa che una colonna non può essere memorizzata valori duplicati . Ad esempio, gli indirizzi email e i numeri di matricola degli studenti nella tabella 'info_studente' o il numero di contatto dei dipendenti nella tabella 'Dipendente' devono essere univoci.

tipi di dati in Java

MySQL ci consente di utilizzare più di una colonna con vincolo UNIQUE in una tabella. Può accettare a nullo valore, ma MySQL consentiva solo un valore null per colonna. Assicura il integrità della colonna o del gruppo di colonne per memorizzare valori diversi in una tabella.

Esigenze di chiave univoca

  • È utile per impedire che i due record memorizzino valori identici nella colonna.
  • Memorizza solo valori distinti che mantengono l'integrità e l'affidabilità del database per accedere alle informazioni in modo organizzato.
  • Funziona anche con una chiave esterna per preservare l'unicità di una tabella.
  • Può contenere un valore nullo nella tabella.

Sintassi

La seguente sintassi viene utilizzata per creare una chiave univoca MySQL .

Se vogliamo creare solo una colonna chiave univoca in una tabella, utilizzare la sintassi come di seguito:

 CREATE TABLE table_name( col1 datatype, col2 datatype UNIQUE, ... ); 

Se vogliamo creare più di una colonna chiave univoca in una tabella, utilizzare la sintassi come di seguito:

 CREATE TABLE table_name( col1 col_definition, col2 col_definition, ... [CONSTRAINT constraint_name] UNIQUE(column_name(s)) ); 

Se non abbiamo specificato il nome per un vincolo univoco, MySQL genera automaticamente un nome per questa colonna. Pertanto, si consiglia di utilizzare il nome del vincolo durante la creazione di una tabella.

Parametro Spiegazione

La tabella seguente spiega i parametri in dettaglio.

Nome del parametro Descrizioni
nome_tabella È il nome della tabella che creeremo.
col1, col2 Sono i nomi delle colonne che contengono nella tabella.
nome_vincolo È il nome della chiave univoca.
nome_colonna/i Sono i nomi delle colonne che costituiranno una chiave univoca.

Esempio di chiave univoca

L'esempio seguente spiega come viene utilizzata una chiave univoca in MySQL.

Questa istruzione crea una tabella ' Studente2 ' con un vincolo UNICO:

 CREATE TABLE Student2 ( Stud_ID int NOT NULL UNIQUE, Name varchar(45), Email varchar(45), Age int, City varchar(25) ); 

Successivamente, esegui le query di inserimento elencate di seguito per capire come funziona:

 mysql> INSERT INTO Student2 (Stud_ID, Name, Email, Age, City) VALUES (1, 'Peter', '[email protected]', 22, 'Texas'), (2, 'Suzi', '[email protected]', 24, 'California'), (3, 'Joseph', '[email protected]', 23, 'Alaska'); mysql> INSERT INTO Student2 (Stud_ID, Name, Email, Age, City) VALUES (1, 'Stephen', '[email protected]', 22, 'Texas'); 

Produzione

Nell'output seguente, possiamo vedere che il primo INSERISCI domanda viene eseguito correttamente, ma la seconda istruzione fallisce e restituisce un errore che dice: Voce duplicata '1' per la chiave Stud_ID.

Chiave univoca MySQL

Se vuoi definire la chiave univoca su più colonne , utilizzare la query come di seguito:

 CREATE TABLE Student3 ( Stud_ID int, Roll_No int, Name varchar(45) NOT NULL, Email varchar(45), Age int, City varchar(25), CONSTRAINT uc_rollno_email Unique(Roll_No, Email) ); 

Nell'output, possiamo vedere che il valore della chiave univoca contiene due colonne che sono Rotolo_No E E-mail .

Chiave univoca MySQL

Per verificarlo, eseguire la seguente istruzione:

 mysql> SHOW INDEX FROM Student3; 

Qui possiamo vedere che il vincolo univoco è stato aggiunto con successo nella tabella:

Chiave univoca MySQL

DROP Chiave univoca

L'istruzione ALTER TABLE ci consente anche di eliminare la chiave univoca dalla tabella. La seguente sintassi viene utilizzata per rilasciare la chiave univoca:

 ALTER TABLE table_name DROP INDEX constraint_name; 

Nella sintassi precedente, il nome_tabella è il nome della tabella che vogliamo modificare e nome_vincolo è il nome della chiave univoca che rimuoveremo.

Esempio

Questa istruzione rimuoverà il file uc_rollno_email vincolo dalla tabella in modo permanente.

 mysql> ALTER TABLE Student3 DROP INDEX uc_rollno_email; 

Possiamo eseguire l'istruzione SHOW INDEX a questo scopo.

Chiave univoca utilizzando l'istruzione ALTER TABLE

Questa istruzione ci consente di apportare la modifica alla tabella esistente. A volte vogliamo aggiungere una chiave univoca alla colonna di una tabella esistente; quindi, questa istruzione viene utilizzata per aggiungere la chiave univoca per quella colonna.

Sintassi

Di seguito è riportata la sintassi dell'istruzione ALTER TABLE per aggiungere una chiave univoca:

 ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE(column_list); 

Esempio

Questa istruzione crea una tabella ' Studenti3 ' che non hanno colonne chiave univoche nella definizione della tabella.

 CREATE TABLE Student3 ( Stud_ID int, Roll_No int, Name varchar(45) NOT NULL, Email varchar(45), Age int, City varchar(25) ); 

Dopo aver creato una tabella, se vogliamo aggiungere una chiave univoca a questa tabella, dobbiamo eseguire l'istruzione ALTER TABLE come di seguito:

 mysql> ALTER TABLE Student3 ADD CONSTRAINT uc_rollno_email UNIQUE(Roll_No, Email); 

Possiamo vedere l'output in cui entrambe le istruzioni sono state eseguite con successo.

Chiave univoca MySQL

Per verificarlo, eseguire la seguente istruzione:

 mysql> SHOW INDEX FROM Student3; 

Qui possiamo vedere che il vincolo univoco è stato aggiunto con successo nella tabella:

Chiave univoca MySQL