При использовании команды:
ALTER TABLE my_table DROP PRIMARY KEY;
Состояние (когда ПОКАЗАТЬ ПРОЦЕССЛИСТ) отображается как:
copy to tmp table
Зачем ему нужно использовать таблицу tmp для "отбрасывания" ограничения первичного ключа?
Рассмотрим случай составного первичного ключа. В этом случае ядро БД должно создать новый кластеризованный индекс из синтетического ключа, что потребует перемещения строк. (Имейте в виду, что строки физически упорядочены на диске первичным ключом.) Учитывая редкость этой ситуации, на самом деле не стоит обрабатывать особый случай, когда ваш первичный ключ уже является целым числом.