MySQL # 1025 Ошибка - PullRequest
       32

MySQL # 1025 Ошибка

1 голос
/ 17 марта 2011

Я получаю ошибку # 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 ]

6 голосов
/ 17 марта 2011

Если столбец routes.end_loc используется во внешнем ключе, вы не можете изменить его тип данных.Вам нужно будет удалить внешний ключ, изменить тип данных родительского и дочернего столбцов, а затем снова добавить внешний ключ.

Для получения подробной информации об этой ошибке выполните SHOW ENGINE INNODB STATUS\G, а затем посмотрите наLATEST FOREIGN KEY ERROR секция.

0 голосов
/ 30 апреля 2015

, но это очень сложно, если вы хотите изменить всю кодировку на 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 

я знаю, что это трудный путь, но я уверен, что это сработает и для вас

...