Программирование

Как удалить первичный ключ в 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

Recently: