반응형
user_customers를 라이브 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)
user_customer_id 및 permission_id에 대한 기본 키를 제거하고 id에 대한 기본 키를 유지하고 싶습니다.
명령을 실행할 때 :
alter table user_customer_permission drop primary key;
다음과 같은 오류가 발생합니다.
ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
열 기본 키를 삭제하려면 어떻게해야합니까?
해결 방법
인덱스가 없으면 자동 증가 열을 유지하는 데 너무 많은 비용이 들기 때문에 MySQL
에서는 자동 증가 열이 인덱스의 가장 왼쪽 부분이되도록 요구합니다.
키를 삭제하기 전에 autoincrement 속성을 제거해야합니다.
ALTER TABLE user_customer_permission MODIFY id INT NOT NULL;
ALTER TABLE user_customer_permission DROP PRIMARY KEY;
세 열을 모두 포함하는 복합 PRIMARY KEY
가 있으며 id
가 고유하지 않을 수도 있습니다.
고유 한 경우 다시 PRIMARY KEY
및 AUTO_INCREMENT
로 만들 수 있습니다.
ALTER TABLE user_customer_permission MODIFY id INT NOT NULL PRIMARY KEY AUTO_INCREMENT;
참조 페이지 https://stackoverflow.com/questions/2111291
반응형
'MySql' 카테고리의 다른 글
MySQL - Getting age and numbers of days between two dates (0) | 2020.12.13 |
---|---|
MySQL 소켓 '/var/lib/mysql/mysql.sock'을 통해 로컬 MySQL 서버에 연결할 수 없습니다. (2) (0) | 2020.12.13 |
MySQL mySQL 쿼리를 크론 작업으로 실행 하시겠습니까? (0) | 2020.12.13 |
MySQL x 일보다 오래된 타임 스탬프가있는 모든 행 삭제 (0) | 2020.12.13 |
MySQL 쿼리 출력을 Excel 또는 .txt 파일에 저장하는 방법은 무엇입니까? (0) | 2020.12.13 |
댓글