Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 테이블에서 고유 키(Unique Key) 제거하는 방법

MySQL 고유 키 제거하기

MySQL 테이블에서 고유 키(Unique Key)를 제거하려면 DROP 명령어를 사용합니다. 기본 문법은 다음과 같습니다.

ALTER TABLE yourTableName DROP INDEX yourKeyName;

예제 테이블 생성

위 문법을 실제로 이해하기 위해 고유 키가 포함된 테이블을 먼저 만들어 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> create table DropIndexDemo
   -> (
   -> BookId int unique key,
   -> BookName varchar(200)
   -> );
Query OK, 0 rows affected (0.88 sec)

고유 키 이름 확인

고유 키를 삭제하려면 먼저 해당 키의 이름을 알아야 합니다. SHOW INDEX 명령어를 사용하면 테이블에 설정된 인덱스 정보를 확인할 수 있습니다.

mysql> show index from DropIndexDemo;

실행 결과는 다음과 같습니다.

+-----------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
| Table     | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible |
+-----------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
| dropindex | 0          | BookId   | 1            | BookId      | A         | 0           | NULL     | NULL   | YES  | BTREE      |         |               | YES     |
+-----------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
1 row in set (0.17 sec)

출력 결과를 보면 키 이름이 'BookId'로 지정되어 있는 것을 확인할 수 있습니다. 이제 이 고유 키를 제거하는 쿼리를 실행해 보겠습니다.

고유 키 삭제 실행

mysql> alter table DropIndex drop index BookId ;
Query OK, 0 rows affected (0.33 sec)
Records: 0 Duplicates: 0 Warnings: 0

쿼리가 정상적으로 실행되어 DropIndex 테이블에서 고유 키가 성공적으로 제거되었습니다. 이전에는 BookId 컬럼에 고유 키가 설정되어 있었습니다.

삭제 결과 확인

DESC 명령어로 테이블 구조를 조회하면 고유 키가 더 이상 표시되지 않는 것을 확인할 수 있습니다.

mysql> desc DropIndex;

실행 결과는 다음과 같습니다.

+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| BookId   | int(11)      | YES  |     | NULL    |       |
| BookName | varchar(200) | YES  |     | NULL    |       |
+----------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

출력 결과에서 확인할 수 있듯이, BookId 컬럼의 Key 열이 비어 있어 고유 키가 더 이상 존재하지 않음을 알 수 있습니다.