我有一个旧数据库,列的字符集为 latin1
现在我正在尝试更改 utf8 中的整个数据库,我制作了一个脚本来更改 utf8 中的所有表,如下所示:
ALTER TABLE `mytable` CHARACTER SET utf8;
所有的列都是这样的:
ALTER TABLE `mytable` CHANGE `mycolumn` `mycolumn` varchar(200) CHARACTER SET utf8;
但是在某些列上(我猜是主键和约束)我遇到了这个错误:
Error on rename of './test/#sql-5028_217b96' to './test/mytable' (errno: 150)
有人知道如何解决这个问题吗?
最佳答案
您的 mycolumn
很可能是外键的一部分。如果是这样,您必须删除约束,然后更改主键/外键的类型,然后再次添加约束。
关于Mysql列重命名错误150,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12673629/