Вот распечатка моей ошибки:
mysql> ALTER TABLE Price DROP FOREIGN KEY Id
ERROR 1025 (HY000): Error on rename of '.\testdb\Price' to '.\t
estdb\#sql2-bcc-16' (errno: 152)
Я прочитал эту страницу , что говорит о том, что проблема может быть связана с оставшейся таблицей из более ранней таблицы измененийошибка, и рекомендует вам поискать в вашем каталоге данных и удалить любую таблицу с именем, таким как 'B-xxx.frm'.
Моя ошибка похожа на это, но нет '# sql2-bcc-16 'в моем каталоге данных.И в любом случае не будет никаких артефактов предыдущей неудачной таблицы изменений, потому что это всего лишь небольшая тестовая база данных, и я фактически не изменял никаких таблиц ранее.
РЕДАКТИРОВАТЬ: Подробнее см. Ниже.
Что я действительно хочу сделать, так это изменить идентификатор (первичный ключ) в другой таблице на SMALLINT (вместо TINYINT).Однако ИД этой телефонной таблицы является внешним ключом, ссылающимся на ИД в другой таблице.Итак, я считаю, что мне нужно удалить внешний ключ этой таблицы, прежде чем приступить к смене типа в первичной таблице.Я надеюсь, что это понятно.
РЕДАКТИРОВАТЬ 2: Таблицы.
Продажа - имеет идентификатор TINYINT NOT NULL, первичный ключ (Id)
Телефон - имеет идентификатор TINYINT NOT NULL,ИНОСТРАННЫЙ КЛЮЧ (Id) ССЫЛКИ Продажа (Id)
Я бы хотел, чтобы все идентификаторы в моей базе данных были SMALLINT, а не TINYINT.Это моя текущая ситуация.