运行此查询时出现#1025错误。
SQL查询:
ALTER TABLE `routes` CHANGE `end_loc` `end_loc` VARCHAR( 500 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
MySQL说:
#1025 - Error on rename of './ridestr/#sql-1f44_26eeb' to './ridestr/routes' (errno: 150)
这很有趣,因为我在PHP MyAdmin中设置了这个查询...我不知道为什么我收到外键错误...我只是想把一些东西从int更改为varchar
有人可以帮忙吗?
答案 0 :(得分:6)
如果在外键中使用routes.end_loc
列,则无法更改其数据类型。您将需要删除外键,更改父列和子列的数据类型,然后再次添加外键。
有关此错误的详细信息,请运行SHOW ENGINE INNODB STATUS\G
,然后查看LATEST FOREIGN KEY ERROR
部分。
答案 1 :(得分:0)
但如果你想将整个字符集更改为所有表格的utf8,那就很难了 这就是我做的事情
1 export the database (all tables) and open by notepad
2 replace all "latin1" by utf8 and save
3 then try to restore using mysqlAdministrator but it says wrong
4 so try restoring again but you have to select ignore errors radio button
5 it tries to restore some tables
6 then you have to restore again until no error message
我知道这很难,但我相信这对你也有用