Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL DROP VINCOLO UNICO

Unique Constraint consente di imporre l'univocità dei record nella tabella del database e di mantenere l'integrità del database. Ecco come eliminare il vincolo univoco dalla tabella MySQL utilizzando il comando MySQL DROP INDEX. Viene anche utilizzato per rimuovere la chiave univoca in MySQL.

Che cos'è Unique Constraint in MySQL?

Il vincolo univoco per una tabella è una combinazione di uno o più campi che definiscono in modo univoco ogni record nella tabella. Questi campi possono contenere valori null purché la combinazione di valori di campo sia univoca.

Bonus Leggi:RILASCIA VINCOLO KY ESTERO

Come eliminare il vincolo univoco in MySQL

Ecco i passaggi per eliminare il vincolo univoco in MySQL. Useremo la query MySQL DROP INDEX per rimuovere l'indice esistente da una tabella.

Ecco la sintassi del comando MySQL DROP INDEX

DROP INDEX constraint_name ON table_name
[algorithm_option | lock_option];

Nella query precedente, nome_vincolo è il nome del vincolo e nome_tabella è il nome della tabella del database.

Nota , se desideri DROP INDEX o DROP UNIQUE CONSTRAINT, devi utilizzare la query DROP INDEX.

Bonus Lettura:MySQL DROP DATABASE

Puoi anche fornire 2 argomenti opzionali:algorithm_option e opzione_blocco.

opzione_algoritmo può avere uno dei 3 valori:default, inplace, copy. A seconda della tua argomentazione, MySQL utilizzerà algoritmi diversi per eliminare il vincolo univoco.

La sua sintassi è

ALGORITHM [=] {DEFAULT|INPLACE|COPY}
  • default – Questo ha lo stesso effetto del non usare algorithm_option argomento
  • copia – La tabella in cui è necessario eliminare il vincolo, verrà copiata e l'indice verrà eliminato dalla tabella di copia. Durante questo periodo, non sono consentite operazioni simultanee come INSERT e UPDATE.
  • inplace – In questo caso, la tabella viene ricostruita in posizione senza vincoli. Sebbene questa opzione consenta operazioni simultanee, blocca i metadati durante l'esecuzione.

A seconda di lock_option MySQL bloccherà/non bloccherà l'accesso in lettura/scrittura alle tue tabelle mentre il vincolo viene eliminato. lock_option ha la seguente sintassi

LOCK [=] {DEFAULT|NONE|SHARED|EXCLUSIVE}

Richiede 4 valori:

  • default:consente la massima concorrenza per la scelta dell'algoritmo. consente sia letture che scritture simultanee se supportate. In caso contrario, consente solo letture simultanee. Se anche questo non è supportato, impone l'accesso esclusivo.
  • none:se supportato, puoi avere letture e scritture simultanee. In caso contrario, MySQL restituisce un errore.
  • condiviso:se l'opzione condivisa è supportata, puoi avere letture simultanee, ma non scritture simultanee.
  • esclusivo:questa opzione impone l'accesso esclusivo

Bonus Leggi:MySQL DROP COLUMN

Esempio MySQL DROP UNIQUE CONSTRAINT

Supponiamo che tu abbia la seguente tabella con vincolo univoco.

mysql> create table orders(order_id int primary key,
     order_date date,
     product varchar(255),
     sale int,
     constraint name unique (product)
     );

Ecco la query SQL per eliminare il vincolo univoco nome dalla tabella ordini .

mysql> DROP INDEX name ON orders;

Bonus Leggi:MySQL DROP TABLE

Indice MySQL DROP PRIMARY KEY

Poiché la chiave primaria è anche un esempio di vincolo univoco sulla tabella, ecco la sintassi per eliminare il vincolo della chiave primaria sugli ordini della tabella.

mysql> DROP INDEX `PRIMARY` ON orders;

In questo caso ci riferiamo al campo della chiave primaria come `PRIMARY` invece usando il nome del campo.

Ubiq semplifica la visualizzazione dei dati in pochi minuti e il monitoraggio in dashboard in tempo reale. Provalo oggi!