Удалить первичный ключ в MySQL - PullRequest
163 голосов
/ 21 января 2010

У меня есть следующая схема таблицы, которая отображает 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 и license_id и сохранить первичный ключ для id.1004 *

Когда я запускаю команду:

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

Как я могу отбросить первичный ключ столбца?

Ответы [ 11 ]

0 голосов
/ 14 августа 2016

Первое резервное копирование базы данных. Затем отбросьте любой внешний ключ, связанный с таблицей. усечь таблицу внешнего ключа. Усечь текущую таблицу. Удалите необходимые первичные ключи. Используйте sqlyog или верстак или heidisql или dbeaver или phpmyadmin.

...