小编典典

重命名MySQL中的外键列

mysql

我们正在尝试重命名MySQL(5.1.31,InnoDB)中的一列,该列是另一个表的外键。

最初,我们尝试使用Django-South,但遇到了一个已知问题:

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

OperationalError:(1025,“将’./xxx/#sql-
bf_4d’重命名为’./xxx/cave_event’时出错(错误号:150)”)

将’./xxx/#sql-bf_4b’重命名为’./xxx/cave_event’时出错(错误号:150)

错误150肯定与外键约束有关。见例如

mysql错误1025(HY000):“ ./
foo”重命名错误(错误编号:150)是什么意思?

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

因此,现在我们尝试在原始SQL中进行重命名。看来我们将必须首先删除外键,然后进行重命名,然后再次添加外键。听起来对吗?有没有更好的方法,因为这似乎很令人困惑和麻烦?

任何帮助将非常感激!


阅读 389

收藏
2020-05-17

共1个答案

小编典典

AFAIK,删除约束,然后重命名,然后再添加约束是唯一的方法。先备份!

2020-05-17