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

MySQL에서 기본 키(PRIMARY KEY)와 AUTO_INCREMENT 속성을 한 번에 제거하는 ALTER 문 사용법

MySQL에서는 ALTER 명령어를 사용하여 기본 키(PRIMARY KEY)와 AUTO_INCREMENT 속성을 동시에 제거할 수 있습니다. 기본적인 문법은 다음과 같습니다.

ALTER TABLE yourTableName DROP PRIMARY KEY, change yourColumnName yourColumnName 데이터타입;

예제 테이블 생성하기

문법을 실제로 이해하기 위해 먼저 예제 테이블을 생성해 보겠습니다. 아래 쿼리로 'removePrimaryKey'라는 이름의 테이블을 만듭니다.

mysql> create table removePrimaryKey
    -> (
    -> StudentId int NOT NULL AUTO_INCREMENT,
    -> StudentFirstName varchar(20),
    -> StudentLastName varchar(20),
    -> PRIMARY KEY(StudentId)
    -> );
Query OK, 0 rows affected (0.47 sec)

DESC 명령으로 테이블 구조 확인하기

테이블의 구조를 확인하려면 DESC 명령어를 사용합니다.

desc yourTableName;

'removePrimaryKey' 테이블의 구조를 확인해 보겠습니다.

mysql> desc removePrimaryKey;

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

+------------------+-------------+------+-----+---------+----------------+
| Field            | Type        | Null | Key | Default | Extra          |
+------------------+-------------+------+-----+---------+----------------+
| StudentId        | int(11)     | NO   | PRI | NULL    | auto_increment |
| StudentFirstName | varchar(20) | YES  |     | NULL    |                |
| StudentLastName  | varchar(20) | YES  |     | NULL    |                |
+------------------+-------------+------+-----+---------+----------------+
3 rows in set (0.01 sec)

위 출력 결과에서 주목할 부분은 Key 열과 Extra 열입니다. Key 열에는 PRI(기본 키)가 표시되고, Extra 열에는 auto_increment가 설정되어 있는 것을 확인할 수 있습니다. 이제 앞서 소개한 ALTER DROP 명령어를 사용하여 두 속성을 모두 제거해 보겠습니다.

기본 키와 AUTO_INCREMENT 제거하기

제거 쿼리는 다음과 같습니다.

mysql> alter table removePrimaryKey DROP PRIMARY KEY, change StudentId StudentId int;
Query OK, 0 rows affected (1.79 sec)
Records: 0 Duplicates: 0 Warnings: 0

쿼리가 성공적으로 실행되어 기본 키와 AUTO_INCREMENT가 모두 제거되었습니다. 정말로 속성이 삭제되었는지 다시 DESC 명령으로 확인해 보겠습니다.

mysql> desc removePrimaryKey;

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

+------------------+-------------+------+-----+---------+-------+
| Field            | Type        | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+-------+
| StudentId        | int(11)     | YES  |     | NULL    |       |
| StudentFirstName | varchar(20) | YES  |     | NULL    |       |
| StudentLastName  | varchar(20) | YES  |     | NULL    |       |
+------------------+-------------+------+-----+---------+-------+
3 rows in set (0.07 sec)

결과를 비교해 보면, 이전에는 StudentId 열의 Key 값이 PRI였고 Extra 값이 auto_increment였지만, 이제는 두 항목이 모두 사라진 것을 확인할 수 있습니다. 이처럼 DROP PRIMARY KEYCHANGE 절을 하나의 ALTER 문에 함께 사용하면 기본 키와 AUTO_INCREMENT 속성을 간편하게 제거할 수 있습니다.