> 데이터 베이스 > MySQL 튜토리얼 > 하나를 유지하면서 MySQL에서 여러 기본 키를 제거하는 방법은 무엇입니까?

하나를 유지하면서 MySQL에서 여러 기본 키를 제거하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-12-28 04:35:10
원래의
599명이 탐색했습니다.

How to Remove Multiple Primary Keys in MySQL While Keeping One?

MySQL에서 기본 키 제거

질문: 하나의 기본 키를 유지하면서 MySQL 테이블의 열에서 기본 키를 제거하려면 어떻게 해야 합니까?

시나리오:
고려 사용자 고객을 라이브 MySQL 데이터베이스의 권한에 매핑하는 다음 테이블 스키마:

mysql> describe user_customer_permission;
+------------------+---------+------+-----+---------+----------------+
| Field            | Type    | Null | Key | Default | Extra          |
+------------------+---------+------+-----+---------+----------------+
| id               | int(11) | NO   | PRI | NULL    | auto_increment |
| user_customer_id | int(11) | NO   | PRI | NULL    |                |
| permission_id    | int(11) | NO   | PRI | NULL    |                |
+------------------+---------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
로그인 후 복사

id를 기본 키로 유지하면서 user_customer_id 및Permission_id에 대한 기본 키를 제거하려고 합니다. 그러나 alter table user_customer_permission drop 기본 키 명령을 사용하여 그렇게 하려고 합니다. 오류가 발생합니다.

ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
로그인 후 복사

답변:

자동 증분 열에는 인덱스가 필요합니다. 인덱스가 없으면 자동 증가 열을 유지하는 데 비용이 너무 많이 듭니다. 따라서 MySQL에서는 자동 증가 열이 인덱스의 가장 왼쪽 부분이 되도록 요구합니다.

user_customer_id 및Permission_id에서 기본 키를 제거하려면 다음 단계를 따르십시오.

  1. 제거 자동 증가 속성 id:

    ALTER TABLE user_customer_permission MODIFY id INT NOT NULL;
    로그인 후 복사
  2. 기본 키 삭제:

    ALTER TABLE user_customer_permission DROP PRIMARY KEY;
    로그인 후 복사

복합 PRIMARY KEY는 원래 세 개의 열을 모두 포함했으며, id는 고유하다고 보장되지 않습니다. 그러나 ID가 고유한 경우 이를 PRIMARY KEY로 만들고 다시 AUTO_INCREMENT로 만들 수 있습니다.

ALTER TABLE user_customer_permission MODIFY id INT NOT NULL PRIMARY KEY AUTO_INCREMENT;
로그인 후 복사

위 내용은 하나를 유지하면서 MySQL에서 여러 기본 키를 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿