我有一个旧的数据库,其中包含列' charset到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)
任何人都知道怎么解决这个问题?
答案 0 :(得分:9)
您的mycolumn
最有可能是外键的一部分。如果是这样,您必须删除约束,然后更改主/外键的类型,然后再次添加约束。