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 스크립트를 사용하여 MySQL에서 색인을 삭제할 수 있습니다.

alter table fuinfo drop index email;

26
email컬럼에 대한 외래 키가 존재하면 (오류 150) 이와 같은 키를 삭제하지 못할 수 있습니다 . 이 기능을 사용하려면 먼저 외래 키를 삭제 한 다음 인덱스를 삭제하고 나중에 외래 키를 다시 만드십시오. 예를 들어 ALTER TABLE fuinfo DROP foreign key fk_name_for_email;
Brad Parks

61

테이블을 변경하지 않아도되는 더 좋은 방법이 있습니다.

mysql> DROP INDEX email ON fuinfo;

여기서 email은 고유 키 (인덱스)의 이름입니다.

다음과 같이 다시 가져올 수도 있습니다.

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

여기서 IDEX 이후의 이메일은 색인의 이름이며 선택 사항이 아닙니다. INDEX 대신 KEY를 사용할 수 있습니다.

또한 다음과 같이 여러 열의 고유 한 결정을 생성 (제거) 할 수 있습니다.

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

여러 열 인덱스의 이름을 지정하지 않은 경우 다음과 같이 제거 할 수 있습니다.

mysql> DROP INDEX email ON fuinfo;

여기서 email은 열 이름입니다.


5
이 모든 것이 실제로 ALTER TABLE을 수행하므로 실제로 피하는 것이 아닙니다. 그것은 같은 것에 대한 다른 구문 일뿐입니다.
mpeters

9

mysql> DROP INDEX 이메일 ON fuinfo;

여기서 email 은 열 이름이 아닌 고유 키입니다. 고유 키의 이름은

mysql> SHOW CREATE TABLE fuinfo;

여기에 고유 키 이름 (예 : email_2)이 있습니다. 그래서...

mysql> DROP INDEX email_2 ON fuinfo;

mysql> DESCRIBE fuinfo;

인덱스가 제거되었음을 나타냅니다.


5

아래 쿼리를 사용하십시오.

ALTER TABLE `table_name` DROP INDEX key_name;

key_name을 모르는 경우 먼저 아래 쿼리를 시도하면 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

DROP INDEX column_nameON table_name

SQL 탭에서 데이터베이스와 쿼리를 선택하면 특정 열의 인덱스가 제거됩니다. PHP MyADMIN에서 나를 위해 일했습니다.



2

MySQL 5.7.11의 경우

1 단계 : 먼저 고유 키 가져 오기

이 쿼리를 사용하여 얻으십시오.

1.1) 테이블 생성 사용자 표시;

마지막으로 다음과 같습니다.

.....

.....

고유 키 UK_8bv559q1gobqoulqpitq0gvr6( phoneNum)

.....

....

2 단계 :이 쿼리에서 고유 키를 제거하십시오.

ALTER TABLE 사용자 DROP INDEX UK_8bv559q1gobqoulqpitq0gvr6;

3 단계 :이 쿼리로 테이블 정보를 확인하십시오.

DESC 사용자;

인덱스가 제거되었음을 나타냅니다.

그게 다야.



1

열의 uique를 제거하십시오 :

ALTER TABLE  `0_ms_labdip_details` DROP INDEX column_tcx

phpmyadmin에서이 코드를 실행하고 고유 한 열을 제거하십시오.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.