2009-10-14 18 views
115
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 

Chcę upuścić unikalny klucz na email, jak?Jak upuścić unikalny w MySQL?

Odpowiedz

234

prostu można wykorzystać następujący skrypt SQL, aby usunąć indeks w MySQL:

alter table fuinfo drop index email; 
+20

Pamiętaj, że możesz nie być w stanie upuścić klucza, jeśli istnieje klucz obcy w kolumnie 'email' (błąd 150). Aby to zadziałało, najpierw upuść klucz obcy, a następnie upuść indeks i ponownie odtwórz klucz obcy. np. ALTER TABLE fuinfo DROP klucz obcy fk_name_for_email; –

52

Nie ma lepszego sposobu, które nie musisz zmieniać tabelę:

mysql> DROP INDEX email ON fuinfo; 

gdzie email to nazwa unikalnego klucza (indeksu).

Można również przynieść go z powrotem tak:

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

gdzie e-mail po IDEX to nazwa indeksu i to nie jest obowiązkowe. Możesz użyć KEY zamiast INDEX.

Również jest możliwe stworzenie (usuń) wielokolumnowa unikalne indecies tak:

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

Jeśli nie określił nazwę indeksu wielokolumnowego można go usunąć tak:

mysql> DROP INDEX email ON fuinfo; 

gdzie e-mail jest nazwą kolumny.

+3

i tak wszystkie te rzeczy rzeczywiście będą robić ALTER TABLE, więc nie jest tak, że naprawdę tego unikasz. To tylko inna składnia tego samego. – mpeters

9

mysql> DROP INDEX email ON fuinfo;

gdzie e-mail jest unikalnym kluczem (a nie nazwą kolumny). Nazwę unikatowego klucza można znaleźć na przykład pod unikatowym kluczem, na przykład e-mail_2. Nazwa unikatowego klucza to . Więc ...

mysql> DROP INDEX email_2 ON fuinfo; 

mysql> DESCRIBE fuinfo; 

ten powinien pokazać, że indeks jest usuwany

+0

Dzięki tym informacjom pomóżcie mi –

4

DROP INDEX column_name NA table_name

Wybierz bazę danych i tworzyć zapytania SQL tab.This usuwa indeks danej kolumnie . Pracował dla mnie w phpmyadmin

2

To może pomóc innym

alter table fuinfo drop index fuinfo_email_unique 
3

skorzystać z poniższego zapytania:

ALTER TABLE `table_name` DROP INDEX key_name; 

Jeśli nie znasz KEY_NAME następnie spróbuj najpierw poniżej kwerendy, można uzyskać nazwa_klucza.

SHOW CREATE TABLE table_name 

LUB

SHOW INDEX FROM table_name; 

Jeśli chcesz usunąć/upuść klucz podstawowy z tabeli mysql, skorzystaj z poniższego zapytania dla tej

ALTER TABLE `products` DROP INDEX `PRIMARY`; 

Kodeksu albumu: http://chandreshrana.blogspot.in/2015/10/how-to-remove-unique-key-from-mysql.html

1

ALTER TABLE 0_value_addition_setup DROP INDEX value_code 
1

Spróbuj usunąć uique kolumny:

ALTER TABLE `0_ms_labdip_details` DROP INDEX column_tcx 

uruchomić ten kod w phpmyadmin i usunąć unikatowy kolumny

1

MySQL 5.7.11

Krok 1: Najpierw uzyskać unikalny klucz

Użyj tego zapytania, aby dostać go:

1.1) SHOW CREATE tA BLE Użytkownik;

W końcu, to będzie tak:

.....

.....

unikalny klucz UK_8bv559q1gobqoulqpitq0gvr6 (phoneNum)

....

....

Krok 2: Usuń U nique key przez to zapytanie.

ALTER TABELA User DROP INDEX UK_8bv559q1gobqoulqpitq0gvr6;

Krok 3: Sprawdź informacje o tabeli, przez tego zapytania:

DESC Użytkownika;

Powinno to pokazać, że indeks został usunięty.

To wszystko.

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

to zadziała.

+0

Nie daje to odpowiedzi na pytanie. Gdy masz już wystarczającą [reputację] (https://stackoverflow.com/help/whats-reputation), będziesz mógł [komentować dowolny wpis] (https: // stackoverflow.com/help/privileges/comment); zamiast tego [dostarczaj odpowiedzi, które nie wymagają wyjaśnień od pytającego] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-zamiast). - [Z recenzji] (/ opinia/niskiej jakości-posts/18374275) – Mamun

Powiązane problemy