Как удалить первичный ключ в MySQL

Вчера столкнулся с проблемой удаления первичного ключа с аттрибутом AUTO_INCREMENT – при выполнении запроса вида

ALTER TABLE table_name DROP PRIMARY KEY;

вылетает ошибка вида ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key. Происходит это потому, что аттрибут AUTO_INCREMENT может быть только у ключевого поля, а вышеприведенной коммандой мы пытались удалить ключ. Поэтому, для начала нужно снять этот аттрибут с индексного поля путем несложной комманды:

ALTER TABLE table_name CHANGE key_field_name key_field_name INTEGER NOT NULL;

а потом уже после этого спокойно удалять первичный ключ

ALTER TABLE table_name DROP PRIMARY KEY



Digital Ocean
Провайдер облачного хостинга - заведи свой виртуальный сервер всего за $5 в месяц !

4 Comments

  1. Sergey

    прикольно, буду знать

  2. Александр

    блин, а я незнал как этот долбанные КЛЮЧИ удалять.

  3. Постельное белье

    есть такая ошибка.

  4. Nick

    Тоже столкнулся с такой проблемой! Спасибо за инфу, статья помогла

Leave a Reply