我是一名有用的助手,可以为您进行翻译。
我有一个旧数据库,其中列的字符集为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)
有人知道如何解决这个问题吗?
INT
转换为BIGINT
)。我决定复制表格(其中有一个外键约束在我需要更改的列上)和它的内容,无问题地更改副本表中的列类型,然后用副本表替换原始表。这样做是否危险? - tylerl