Переименование столбцов внешнего ключа в MySQL

Мы пытаемся переименовать столбец в MySQL (5.1.31, InnoDB), который является внешним ключом к другой таблице.

Сначала, мы попытались использовать Django-юг, но натолкнулись на известную проблему:

http://south.aeracode.org/ticket/243

OperationalError: (1025, "Ошибка на переименовывает './xxx/#sql-bf_4d' к './xxx/cave_event' (errno: 150)")

И

Ошибка на переименовывает './xxx/#sql-bf_4b' к './xxx/cave_event' (errno: 150)

Эта ошибка 150 определенно принадлежит ограничениям внешнего ключа. Посмотрите, например.

Что делает mysql ошибку 1025 (HY000): Ошибка на переименовывает './foo' (errorno: 150) средний?

http://www.xaprb.com/blog/2006/08/22/mysqls-error-1025-explained/

Так, теперь мы пытаемся сделать переименование в необработанном SQL. Похоже, что мы оказываемся перед необходимостью отбрасывать внешний ключ сначала, затем сделайте переименовывание и затем добавьте внешний ключ назад снова. Это звучит правильным? Существует ли лучший путь, так как это кажется довольно сбивающим с толку и громоздким?

Любая справка очень ценилась бы!

45
задан Community 23 May 2017 в 12:34
поделиться

1 ответ

AFAIK, сбросив ограничение, затем переименовать, затем добавить ограничение обратно - это единственный способ. Резервное копирование сначала!

51
ответ дан 26 November 2019 в 21:17
поделиться
Другие вопросы по тегам:

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