Ошибка ALTER TABLE

Кто-то может объяснить мне, почему я получаю следующую ошибку?

Я хочу переименовать столбец "exerciseID" к "идентификатору" в mysql таблице с помощью следующего синтаксиса.

ALTER TABLE  `exercises` CHANGE  `exerciseID`  `ID` INT( 11 ) NOT NULL AUTO_INCREMENT

Однако я получаю следующую ошибку:

MySQL said: 

#1025 - Error on rename of './balance/#sql-de_110e' to './balance/exercises' (errno: 150)

Любые предложения очень ценились бы

1
задан OMG Ponies 30 April 2011 в 17:31
поделиться

3 ответа

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

Я думаю, MySQL зацикливается на том факте, что при переименовании отношения FK становятся недействительными, и возникает ошибка.

РЕДАКТИРОВАТЬ: Подтверждено FK Rename в MySQL

Вам нужно будет сделать что-то вроде этого:

alter table yourTable drop foreign key yourID
2
ответ дан 3 September 2019 в 00:16
поделиться

Думаю, это может быть многоэтапный процесс.

  1. добавить новый столбец,
  2. скопировать данные из исходного столбца
  3. удалить старый столбец
0
ответ дан 3 September 2019 в 00:16
поделиться

, просто выполнив быстрый поиск в Google, и он выглядит как будто вы ссылаетесь на столбец во внешнем ключе, что предотвращает переименование.

боюсь, я не уверен, как бы вы разрешили проблему, так как я не так часто использовал внешние ключи в MySQL

0
ответ дан 3 September 2019 в 00:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: