Come rilasciare unico in MySQL?


139
Create Table: CREATE TABLE `fuinfo` (
  `fid` int(10) unsigned NOT NULL,
  `name` varchar(40) NOT NULL,
  `email` varchar(128) NOT NULL,
  UNIQUE KEY `email` (`email`),
  UNIQUE KEY `fid` (`fid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

Voglio rilasciare la chiave univoca email, come?

Risposte:


278

Semplicemente puoi usare il seguente script SQL per eliminare l'indice in MySQL:

alter table fuinfo drop index email;

26
Si noti che potrebbe non essere possibile rilasciare una chiave come questa se emailesiste una chiave esterna nella colonna (errore 150). Per farlo funzionare, rilasciare prima la chiave esterna, quindi rilasciare l'indice e ricreare successivamente la chiave esterna. es. ALTER TABLE fuinfo DROP chiave esterna fk_name_for_email;
Brad Parks,

61

C'è un modo migliore che non ha bisogno che tu modifichi la tabella:

mysql> DROP INDEX email ON fuinfo;

dove e-mail è il nome della chiave univoca (indice).

Puoi anche riportarlo in quel modo:

mysql> CREATE UNIQUE INDEX email ON fuinfo(email);

dove e-mail dopo IDEX è il nome dell'indice e non è facoltativo. È possibile utilizzare KEY anziché INDEX.

Inoltre è possibile creare (rimuovere) indecie univoche a più colonne come queste:

mysql> CREATE UNIQUE INDEX email_fid ON fuinfo(email, fid);
mysql> DROP INDEX email_fid ON fuinfo;

Se non hai specificato il nome dell'indice a più colonne puoi rimuoverlo in questo modo:

mysql> DROP INDEX email ON fuinfo;

dove e-mail è il nome della colonna.


5
tutti questi faranno comunque una ALTER TABLE, quindi non è che tu lo stia davvero evitando. È solo una sintassi diversa per la stessa cosa.
mpeters

9

mysql> DROP INDEX e-mail SU fuinfo;

dove l' e-mail è la chiave univoca (anziché il nome della colonna). Trovi il nome della chiave univoca di

mysql> SHOW CREATE TABLE fuinfo;

qui viene visualizzato il nome della chiave univoca, ad esempio email_2. Così...

mysql> DROP INDEX email_2 ON fuinfo;

mysql> DESCRIBE fuinfo;

Questo dovrebbe mostrare che l'indice è stato rimosso


5

Usa la query seguente:

ALTER TABLE `table_name` DROP INDEX key_name;

Se non si conosce key_name, provare innanzitutto sotto query, è possibile ottenere key_name.

SHOW CREATE TABLE table_name

O

SHOW INDEX FROM table_name;

Se si desidera rimuovere / rilasciare la chiave primaria dalla tabella mysql, utilizzare la query seguente per quello

ALTER TABLE `products` DROP INDEX `PRIMARY`;

Codice tratto da: http://chandreshrana.blogspot.in/2015/10/how-to-remove-unique-key-from-mysql.html


4

DROP INDEX column_nameON table_name

Selezionare il database e eseguire una query dalla scheda sql. In questo modo si rimuove l'indice della colonna specifica. Ha funzionato per me in PHP MyADMIN



2

Per MySQL 5.7.11

Passaggio 1: ottenere innanzitutto la chiave univoca

Usa questa query per ottenerlo:

1.1) MOSTRA CREA TABELLA Utente;

Nell'ultimo, sarà così:

.....

.....

Chiave unica UK_8bv559q1gobqoulqpitq0gvr6( phoneNum)

.....

....

Passaggio 2: rimuovere la chiave unica da questa query.

ALTER TABLE INDICE DROP utente UK_8bv559q1gobqoulqpitq0gvr6;

Passaggio 3: controllare le informazioni sulla tabella, con questa query:

Utente DESC;

Questo dovrebbe mostrare che l'indice è stato rimosso

È tutto.



1

Provalo per rimuovere uique di una colonna:

ALTER TABLE  `0_ms_labdip_details` DROP INDEX column_tcx

Esegui questo codice in phpmyadmin e rimuovi univoco della colonna


0
 ALTER TABLE [table name] DROP KEY [key name];

questo funzionerà.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.