Spec-Zone .ru
спецификации, руководства, описания, API

C.5.7.1. Проблемы с ALTER TABLE

Если Вы получаете двойную ключевую ошибку при использовании ALTER TABLE чтобы изменить набор символов или сопоставление символьного столбца, причина или что новое сопоставление столбца отображает два ключа на то же самое значение или что таблица повреждается. В последнем случае следует работать REPAIR TABLE на таблице.

Если ALTER TABLE умирает со следующей ошибкой, проблема может состоять в том что MySQL, разрушенный во время более раннего ALTER TABLE работа и есть старая названная таблица A-xxx или B-xxx расположение вокруг:

Error on rename of './database/name.frm'to './database/B-xxx.frm' (Errcode: 17)

В этом случае пойдите в каталог данных MySQL и удалите все файлы, у которых есть имена, запускающиеся с A- или B-. (Можно хотеть переместить их в другое место вместо того, чтобы удалить их.)

ALTER TABLE работы следующим образом:

Если что-то идет не так, как надо с работой переименования, MySQL пытается отменить изменения. Если что-то идет серьезно неправильно (хотя это не должно произойти), MySQL может встать из-за старого стола как B-xxx. Простое переименовывает табличных файлов на системном уровне, должен вернуть Ваши данные.

Если Вы используете ALTER TABLE на транзакционной таблице или если Вы используете Windows, ALTER TABLE разблокировал таблицу, если Вы сделали a LOCK TABLE на этом. Это делается потому что InnoDB и эти операционные системы не могут отбросить таблицу, которая используется.