Як запустити унікальну в 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

Я хочу впустити унікальний ключ email, як?

Відповіді:


278

Просто ви можете використовувати наступний SQL Script для видалення індексу в MySQL:

alter table fuinfo drop index email;

26
Зауважте, що ви не зможете скинути такий ключ, якщо існує сторонній ключ до emailстовпця (помилка 150). Щоб це спрацювало, спочатку опустіть зовнішній ключ, потім опустіть індекс та відтворіть зовнішній ключ згодом. наприклад, ALTER TABLE fuinfo DROP зовнішній ключ fk_name_for_email;
Бред Паркс

61

Є кращий спосіб, який вам не потрібен для зміни таблиці:

mysql> DROP INDEX email ON fuinfo;

де електронна пошта - це ім'я унікального ключа (індексу).

Ви також можете повернути його так:

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

де електронна пошта після IDEX - це ім'я індексу, і це не обов’язково. Ви можете використовувати KEY замість INDEX.

Крім того, можна створити (видалити) багатокольорові унікальні стихії, такі як:

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

Якщо ви не вказали ім'я індексу багатоколонок, його можна видалити так:

mysql> DROP INDEX email ON fuinfo;

де електронна адреса - назва стовпця.


5
все це насправді зробить СТІЛЬКУ ТАБЛИЦЮ, так це не так, як ви насправді цього уникаєте. Це просто інший синтаксис для однієї і тієї ж речі.
mpeters

9

mysql> DROP INDEX електронна пошта ON fuinfo;

де електронний лист - це унікальний ключ (а не назва стовпця). Ім'я унікального ключа ви знайдете за

mysql> SHOW CREATE TABLE fuinfo;

тут ви бачите ім'я унікального ключа, наприклад, електронною поштою_2. Так...

mysql> DROP INDEX email_2 ON fuinfo;

mysql> DESCRIBE fuinfo;

Це повинно показати, що індекс видалено


5

Використовуйте запит нижче:

ALTER TABLE `table_name` DROP INDEX key_name;

Якщо ви не знаєте ім'я ключа, то спершу спробуйте нижче запиту, ви можете отримати ім'я ключа_користувача.

SHOW CREATE TABLE table_name

АБО

SHOW INDEX FROM table_name;

Якщо ви хочете видалити / видалити первинний ключ із таблиці mysql, для цього використовуйте запит нижче

ALTER TABLE `products` DROP INDEX `PRIMARY`;

Код взято з: http://chandreshrana.blogspot.in/2015/10/how-to-remove-unique-key-from-mysql.html


4

ВІДКЛЮЧИТИ ІНДЕКС column_nameНА ІМЕНІ ТАБЛІКИ

Виберіть базу даних та запит у формі вкладки sql. Це видаляє індекс конкретного стовпця. Це працювало для мене в PHP MyADMIN



2

Для MySQL 5.7.11

Крок 1: Спочатку дістайте унікальний ключ

Скористайтеся цим запитом, щоб отримати його:

1.1) ПОКАЗУВАТИ СТВОРИТИ СТОЛИ Користувача;

В останньому це буде так:

.....

.....

УНІКАЛЬНИЙ КЛЮЧ UK_8bv559q1gobqoulqpitq0gvr6( phoneNum)

.....

….

Крок 2: Видаліть унікальний ключ за допомогою цього запиту.

АЛЬТЕР ТАБЛИЦЯ користувальницький DROP INDEX UK_8bv559q1gobqoulqpitq0gvr6;

Крок 3: Перевірте інформацію таблиці за цим запитом:

Користувач DESC;

Це повинно показати, що індекс видалено

Це все.



1

Спробуйте це видалити uique стовпця:

ALTER TABLE  `0_ms_labdip_details` DROP INDEX column_tcx

Запустіть цей код у phpmyadmin та видаліть унікальний стовпець


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.