MySQL#1025错误

时间:2011-03-17 11:20:58

标签: mysql mysql-error-1025

运行此查询时出现#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

有人可以帮忙吗?

2 个答案:

答案 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 

我知道这很难,但我相信这对你也有用